<?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>157832</bug_id>
          
          <creation_ts>2016-05-18 01:07:48 -0700</creation_ts>
          <short_desc>Make binding DOM constructor use toJSNewlyCreated instead of toJS</short_desc>
          <delta_ts>2016-05-19 00:13:50 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1194191</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 01:07:48 -0700</bug_when>
    <thetext>It would be more efficient to use toJSNewlyCreated for objects created in DOM constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194196</commentid>
    <comment_count>1</comment_count>
      <attachid>279229</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 01:15:09 -0700</bug_when>
    <thetext>Created attachment 279229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194275</commentid>
    <comment_count>2</comment_count>
      <attachid>279229</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-18 08:41:43 -0700</bug_when>
    <thetext>Comment on attachment 279229
Patch

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

r=me, nice!

&gt; Source/WebCore/bindings/js/JSImageDataCustom.cpp:55
&gt; +    return toJSNewlyCreated(state, globalObject, Ref&lt;ImageData&gt;(imageData));

Do we really need the explicit Ref&lt;&gt;()?

&gt; Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp:82
&gt; +    return toJSNewlyCreated(state, globalObject, Ref&lt;TextTrackCue&gt;(cue));

Do we really need the explicit Ref&lt;&gt;()?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:477
&gt; +    return 1 if $interface-&gt;extendedAttributes-&gt;{&quot;Constructor&quot;} or  $interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;};

nit: extra space in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194667</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 23:42:09 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/bindings/js/JSImageDataCustom.cpp:55
&gt; &gt; +    return toJSNewlyCreated(state, globalObject, Ref&lt;ImageData&gt;(imageData));
&gt; 
&gt; Do we really need the explicit Ref&lt;&gt;()?

Yes, which is a bit unfortunate.
Otherwise the compiler is not sure which toJSNewlyCreated to pick.

&gt; &gt; Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp:82
&gt; &gt; +    return toJSNewlyCreated(state, globalObject, Ref&lt;TextTrackCue&gt;(cue));
&gt; 
&gt; Do we really need the explicit Ref&lt;&gt;()?

Ditto.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:477
&gt; &gt; +    return 1 if $interface-&gt;extendedAttributes-&gt;{&quot;Constructor&quot;} or  $interface-&gt;extendedAttributes-&gt;{&quot;NamedConstructor&quot;};
&gt; 
&gt; nit: extra space in there.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194668</commentid>
    <comment_count>4</comment_count>
      <attachid>279361</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 23:43:22 -0700</bug_when>
    <thetext>Created attachment 279361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194670</commentid>
    <comment_count>5</comment_count>
      <attachid>279363</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-18 23:45:10 -0700</bug_when>
    <thetext>Created attachment 279363
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194678</commentid>
    <comment_count>6</comment_count>
      <attachid>279363</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 00:13:45 -0700</bug_when>
    <thetext>Comment on attachment 279363
Patch for landing

Clearing flags on attachment: 279363

Committed r201128: &lt;http://trac.webkit.org/changeset/201128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194679</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-19 00:13:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279229</attachid>
            <date>2016-05-18 01:15:09 -0700</date>
            <delta_ts>2016-05-18 23:43:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157832-20160518101606.patch</filename>
            <type>text/plain</type>
            <size>18365</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdkMjYzYWZjYzA0YWE0
ZjVmYWQ0MmMyNDg5MGQ3ZTcxMTM2NDUyNy4uZDVhNmY3NTFkYzU2YjFiMzZiNzY2NTNkMTNkMzNh
MjNiM2VjZjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA1LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgTWFrZSBi
aW5kaW5nIERPTSBjb25zdHJ1Y3RvciB1c2UgdG9KU05ld2x5Q3JlYXRlZCBpbnN0ZWFkIG9mIHRv
SlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzgz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzaW5n
IHRvSlNOZXdseUNyZWF0ZWQgaW4gZ2VuZXJhdGVkIGNvbnN0cnVjdG9ycyBpbnN0ZWFkIG9mIHRv
SlMuCisgICAgICAgIEVuYWJsaW5nIGdlbmVyYXRpb24gb2YgdG9KUyBhbmQgdG9KU05ld2x5Q3Jl
YXRlZCBmb3IgY29uc3RydWN0YWJsZSBET00gb2JqZWN0cy4KKyAgICAgICAgVGhpcyBlbnN1cmVz
IHRoYXQgdG9KU05ld2x5Q3JlYXRlZCBjYWxsIGluIGNvbnN0cnVjdG9yIHdpbGwgY29tcGlsZSBw
cm9wZXJseS4KKworICAgICAgICBVcGRhdGluZyBzb21lIGN1c3RvbSBjb2RlIHRvIGltcGxlbWVu
dCB0b0pTTmV3bHlDcmVhdGVkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChT
aG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIpOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgor
CiAyMDE2LTA1LTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgdG8gaGl0dGVzdGluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCA3ZDU3MjVk
NWM5MmQ3NTU0MjdhYjQyMjM2NDkzYWQ2MzZhYjY5YmRjLi5hOWU3M2I3NzVmNTJkMThjZjg3MmNj
ZDVlOGUzMTNjZWI2N2EzMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbWFnZURhdGFDdXN0b20uY3BwCkBAIC0zNSwxOSArMzUsMjQgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbWFnZURhdGEmIGltYWdlRGF0
YSkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8SW1hZ2VEYXRhPiYmIGltYWdlRGF0YSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3Js
ZCgpLCBpbWFnZURhdGEpKQotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAgICAKLSAgICBhdXRv
KiB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhLCBp
bWFnZURhdGEpOwotICAgIElkZW50aWZpZXIgZGF0YU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJkYXRhIik7Ci0gICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGRh
dGFOYW1lLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1hZ2VEYXRhLmRhdGEoKSksIERvbnRE
ZWxldGUgfCBSZWFkT25seSk7CisgICAgYXV0byogZGF0YSA9IGltYWdlRGF0YS0+ZGF0YSgpOwor
ICAgIGF1dG8qIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBJbWFn
ZURhdGEsIFdURk1vdmUoaW1hZ2VEYXRhKSk7CisgICAgSWRlbnRpZmllciBkYXRhTmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsICJkYXRhIik7CisgICAgd3JhcHBlci0+cHV0RGly
ZWN0KHN0YXRlLT52bSgpLCBkYXRhTmFtZSwgdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkYXRh
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICAvLyBGSVhNRTogQWRvcHQgcmVwb3J0RXh0
cmFNZW1vcnlWaXNpdGVkLCBhbmQgc3dpdGNoIHRvIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVk
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1OTUK
LSAgICBleGVjLT5oZWFwKCktPmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShpbWFnZURhdGEu
ZGF0YSgpLT5sZW5ndGgoKSk7CisgICAgc3RhdGUtPmhlYXAoKS0+ZGVwcmVjYXRlZFJlcG9ydEV4
dHJhTWVtb3J5KGRhdGEtPmxlbmd0aCgpKTsKICAgICAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IAorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEltYWdlRGF0YSYgaW1hZ2VEYXRhKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIGltYWdlRGF0YSkpCisg
ICAgICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRl
LCBnbG9iYWxPYmplY3QsIFJlZjxJbWFnZURhdGE+KGltYWdlRGF0YSkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAK
aW5kZXggZTYxNDNhYTAxYzY0MjJkMTVkNzY1MWE5MWFhNGEyODM5NGE3NWE5MC4uZjEzOGRhMTM0
ZmU5MGUxYWU1NjFlOTdiZmNkZTdjMTBlMmNkMTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcApAQCAtNTksMjQgKzU5LDI5
IEBAIGJvb2wgSlNUZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNP
cGFxdWVSb290KHJvb3QodGV4dFRyYWNrQ3VlLnRyYWNrKCkpKTsKIH0KIAotSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRleHRUcmFja0N1
ZSYgY3VlKQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogewotICAgIGlm
IChhdXRvKiB3cmFwcGVyID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCks
IGN1ZSkpCi0gICAgICAgIHJldHVybiB3cmFwcGVyOwotCiAgICAgLy8gVGhpcyBzd2l0Y2ggd2ls
bCBtYWtlIG1vcmUgc2Vuc2Ugb25jZSB3ZSBzdXBwb3J0IERhdGFDdWUKLSAgICBzd2l0Y2ggKGN1
ZS5jdWVUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGN1ZS0+Y3VlVHlwZSgpKSB7CiAgICAgY2FzZSBU
ZXh0VHJhY2tDdWU6OkRhdGE6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBEYXRhQ3VlLCBjdWUpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGdsb2JhbE9iamVjdCwgRGF0YUN1ZSwgV1RGTW92ZShjdWUpKTsKICAgICBjYXNlIFRleHRU
cmFja0N1ZTo6V2ViVlRUOgogICAgIGNhc2UgVGV4dFRyYWNrQ3VlOjpHZW5lcmljOgotICAgICAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBjdWUpOwor
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBX
VEZNb3ZlKGN1ZSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgfQogfQogCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNr
Q3VlJiBjdWUpCit7CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVyKGds
b2JhbE9iamVjdC0+d29ybGQoKSwgY3VlKSkKKyAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisKKyAg
ICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGV4dFRy
YWNrQ3VlPihjdWUpKTsKK30KKwogdm9pZCBKU1RleHRUcmFja0N1ZTo6dmlzaXRBZGRpdGlvbmFs
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgaWYgKFRleHRUcmFjayogdGV4
dFRyYWNrID0gd3JhcHBlZCgpLnRyYWNrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3MTc4ZDE1MDE0MTYzYjAxNWQx
ZmZhZWJkZjNiMDRhYzZjYWQ4MzIuLjEyZjljMDY1OTk0NDdiNjlkNGQ3YTFhYjg1ZTg2OTZjN2U3
YjkyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC00NzQsNiArNDc0LDcgQEAgc3ViIFNob3VsZEdlbmVyYXRlVG9KU0Rl
Y2xhcmF0aW9uCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbVByb3h5VG9KU09iamVjdCJ9OwogICAgIHJldHVybiAxIGlmICghJGhhc1BhcmVu
dCBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QifSBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KU09iamVj
dCJ9KTsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5wYXJlbnQgJiYgJGludGVyZmFjZS0+
cGFyZW50IGVxICJFdmVudFRhcmdldCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gb3IgICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn07CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg
LTUxNTQsNyArNTE1NSw3IEBAIEVORAogICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05l
d2x5Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2Jq
ZWN0KSkpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggMDNmOWYzOTllZDZi
NjdkOWMwNTFkMTE5NjZmNTVjNjgyYTcyMDk5YS4uMzNhNzZjZTI1YjIwOGVmZjRjZjRhMjU1ZDhk
NzAwY2U2OWIyMjMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTI0MCw3ICsyNDAsNyBA
QCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3I6OmNvbnN0cnVjdChFeAogICAgICAgICBzZXRET01FeGNlcHRpb24oc3RhdGUs
IGVjKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0K
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFs
dWUgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6
OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA4OThlZjI5MmExN2U5OThjNjExYzA0YWZl
NzU2MzM0NTc4YzNjM2RmLi4yMzAwMjM2YmRhOWE4ZGQ4M2E5ZGE1MWViNDdmZTE0Nzk5YWMzNTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xMDAsNyArMTAwLDcg
QEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JOYW1lZENvbnN0cnVjdG9yOjoKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKHN0YXRl
LCBlYyk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKICAgICB9
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKIH0KIAogdGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAKaW5kZXggM2QwMjY4ZTlmMTEwYTZmMDExNDQ2MTYxNGI3NzU4YzUyM2Y3
MDJhMi4uY2M4ZWJlNWFlZmE4YmUwZjI3MmU5YTdhOTRhMTVhOGJiODEyNWRiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
LmNwcApAQCAtODAsNyArODAsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoRXhlY1N0YQogewogICAgIGF1
dG8qIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKj4oc3RhdGUtPmNh
bGxlZSgpKTsKICAgICBhdXRvIG9iamVjdCA9IFRlc3ROb2RlOjpjcmVhdGUoKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
Tm9kZUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0yMzQsNSArMjM0LDQ1IEBAIHZv
aWQgSlNUZXN0Tm9kZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS52aXNpdEpTRXZlbnRMaXN0ZW5lcnMo
dmlzaXRvcik7CiB9CiAKKyNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCisjaWYgUExBVEZP
Uk0oV0lOKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMpCitleHRlcm4gIkMiIHsgZXh0
ZXJuIHZvaWQgKCpjb25zdCBfX2lkZW50aWZpZXIoIj8/XzdUZXN0Tm9kZUBXZWJDb3JlQEA2QkAi
KVtdKSgpOyB9CisjZWxzZQorZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRWTjdXZWJDb3Jl
OFRlc3ROb2RlRVtdOyB9CisjZW5kaWYKKyNlbmRpZgorCitKU0M6OkpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxUZXN0Tm9kZT4mJiBpbXBsKQoreworICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdE5vZGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Cit9CisKK0pTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
VGVzdE5vZGUmIGltcGwpCit7CisgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gZ2V0RXhpc3RpbmdX
cmFwcGVyPEpTVGVzdE5vZGU+KGdsb2JhbE9iamVjdCwgaW1wbCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisKKyNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCisgICAgdm9pZCogYWN0dWFs
VlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZpbXBsKSk7CisjaWYg
UExBVEZPUk0oV0lOKQorICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KF9faWRlbnRpZmllcigiPz9fN1Rlc3ROb2RlQFdlYkNvcmVAQDZCQCIp
KTsKKyNlbHNlCisgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dlYkNv
cmU4VGVzdE5vZGVFWzJdOworI2lmIENPTVBJTEVSKENMQU5HKQorICAgIC8vIElmIHRoaXMgZmFp
bHMgVGVzdE5vZGUgZG9lcyBub3QgaGF2ZSBhIHZ0YWJsZSwgc28geW91IG5lZWQgdG8gYWRkIHRo
ZQorICAgIC8vIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUgYXR0cmlidXRlIHRvIHRoZSBpbnRl
cmZhY2UgZGVmaW5pdGlvbgorICAgIHN0YXRpY19hc3NlcnQoX19pc19wb2x5bW9ycGhpYyhUZXN0
Tm9kZSksICJUZXN0Tm9kZSBpcyBub3QgcG9seW1vcnBoaWMiKTsKKyNlbmRpZgorI2VuZGlmCisg
ICAgLy8gSWYgeW91IGhpdCB0aGlzIGFzc2VydGlvbiB5b3UgZWl0aGVyIGhhdmUgYSB1c2UgYWZ0
ZXIgZnJlZSBidWcsIG9yCisgICAgLy8gVGVzdE5vZGUgaGFzIHN1YmNsYXNzZXMuIElmIFRlc3RO
b2RlIGhhcyBzdWJjbGFzc2VzIHRoYXQgZ2V0IHBhc3NlZAorICAgIC8vIHRvIHRvSlMoKSB3ZSBj
dXJyZW50bHkgcmVxdWlyZSBUZXN0Tm9kZSB5b3UgdG8gb3B0IG91dCBvZiBiaW5kaW5nIGhhcmRl
bmluZworICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRl
IHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KKyAgICBSRUxFQVNFX0FTU0VSVChhY3R1
YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CisjZW5kaWYKKyAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROb2RlLCBUZXN0Tm9kZT4oZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKK30KKwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAppbmRleCA1ZTZiMTA3MDU0YWVmYWZhMjc0OWNmN2Zh
Mjg1M2U4MjkzM2ExY2EzLi40MjY4ODQyZTlmMGVmOWJiMWVmMTE1NTg1ZDFiMmQ0YjNlZWJjOWI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmgKQEAgLTY1LDYgKzY1LDEwIEBAIHByb3RlY3RlZDoKIAogfTsKIAorV0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb2RlJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0Tm9kZSogaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwg
KmltcGwpIDogSlNDOjpqc051bGwoKTsgfQorSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxUZXN0Tm9kZT4mJik7Citp
bmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWZQdHI8VGVzdE5vZGU+JiYgaW1w
bCkgeyByZXR1cm4gaW1wbCA/IHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwg
aW1wbC5yZWxlYXNlTm9uTnVsbCgpKSA6IEpTQzo6anNOdWxsKCk7IH0KIAogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDI2MWZhNzBhNTVkY2MwYzY1NmNkZDIzN2ZjYzcw
YzI0MzM0YTMxYjIuLjE1OWEwYzExNTBlZTY3OTE3NDE2YWE1YmNhMGMyODk2OGRlZWE3MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCkBAIC0xMDI0LDcgKzEwMjQsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3RhdAog
ICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoKnN0YXRlLCAx
LCAidGVzdENhbGxiYWNrRnVuY3Rpb24iLCAiVGVzdE9iaiIsIG51bGxwdHIpOwogICAgIFJlZlB0
cjxUZXN0Q2FsbGJhY2tGdW5jdGlvbj4gdGVzdENhbGxiYWNrRnVuY3Rpb24gPSBKU1Rlc3RDYWxs
YmFja0Z1bmN0aW9uOjpjcmVhdGUoYXNPYmplY3Qoc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE9i
ajo6Y3JlYXRlKCp0ZXN0Q2FsbGJhY2ssICp0ZXN0Q2FsbGJhY2tGdW5jdGlvbik7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNPYmplY3QodG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKIH0KIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVz
dE9iakNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNDgzY2ExMjEwZTc5NGViOTE5YzVkZWY5M2U3
NjM3MzAwNTQxOTYzMS4uZDQzZDc5MmRiZjU0ZGRmMWUxOTQzNTUwY2EwNjU1OWViNTE4MzVlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtNzYs
NyArNzYsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMxKEV4ZWNTdGF0ZSogcwogICAgIGlmIChVTkxJS0VMWSghYXJy
YXlCdWZmZXIpKQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqc3RhdGUs
IDAsICJhcnJheUJ1ZmZlciIsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyIsIG51bGxwdHIs
ICJBcnJheUJ1ZmZlciIpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6OmNyZWF0ZSgqYXJyYXlCdWZmZXIpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUo
b2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXds
eUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVj
dCkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIoRXhlY1N0YXRlKiBzdGF0ZSkKQEAgLTkwLDcgKzkwLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzMihFeGVjU3RhdGUqIHMKICAgICBpZiAoVU5MSUtFTFkoIWFycmF5QnVmZmVy
VmlldykpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0ZSwgMCwg
ImFycmF5QnVmZmVyVmlldyIsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyIsIG51bGxwdHIs
ICJBcnJheUJ1ZmZlclZpZXciKTsKICAgICBhdXRvIG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzOjpjcmVhdGUoKmFycmF5QnVmZmVyVmlldyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
V1RGTW92ZShvYmplY3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1v
dmUob2JqZWN0KSkpKTsKIH0KIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1
Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzMyhFeGVjU3RhdGUqIHN0YXRlKQpAQCAtMTAy
LDcgKzEwMiw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMoRXhlY1N0YXRlKiBzCiAgICAgaWYgKFVOTElLRUxZKCFi
bG9iKSkKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCAwLCAi
YmxvYiIsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyIsIG51bGxwdHIsICJCbG9iIik7CiAg
ICAgYXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKCpibG9i
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiBzdGF0aWMgaW5saW5l
IEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM0KEV4
ZWNTdGF0ZSogc3RhdGUpCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzNChFeGVjU3RhdGUq
IHMKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBhdXRvIG9iamVjdCA9IFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoc3RyaW5nKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09i
amVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
V1RGTW92ZShvYmplY3QpKSkpOwogfQogCiBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNv
bnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KEV4ZWNTdGF0ZSogc3RhdGUpCkBA
IC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzNShFeGVjU3RhdGUqIHMKICAgICBpZiAoVU5MSUtF
TFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBhdXRvIG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzOjpjcmVhdGUobG9uZ0FyZ3MpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNP
YmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2Jq
ZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNy
ZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkp
KSk7CiB9CiAKIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3RhdGUqIHN0
YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggM2JmMTM0MWQxY2ZkNjEzNjE2MWU0OWFkZDVl
YzUyNjA1NDZiZWQ2ZC4uZmMzNWU1MWQ4ZGY3NTRmYjE4YzFiMjI3OThmNjhjZmI0NzIyNjVhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdGVtcGxhdGU8PiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChFeGUKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9y
KCpzdGF0ZSwgMSwgInRlc3RDYWxsYmFjayIsICJUZXN0VHlwZWRlZnMiLCBudWxscHRyKTsKICAg
ICBSZWZQdHI8VGVzdENhbGxiYWNrPiB0ZXN0Q2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3Jl
YXRlKGFzT2JqZWN0KHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSksIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpKTsKICAgICBhdXRvIG9iamVjdCA9IFRlc3RUeXBlZGVmczo6Y3JlYXRlKGhl
bGxvLCAqdGVzdENhbGxiYWNrKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0
KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkp
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVk
KHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwog
fQogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcjo6cHJvdG90
eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279361</attachid>
            <date>2016-05-18 23:43:22 -0700</date>
            <delta_ts>2016-05-18 23:45:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157832-20160519084420.patch</filename>
            <type>text/plain</type>
            <size>18364</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdkMjYzYWZjYzA0YWE0
ZjVmYWQ0MmMyNDg5MGQ3ZTcxMTM2NDUyNy4uZDVhNmY3NTFkYzU2YjFiMzZiNzY2NTNkMTNkMzNh
MjNiM2VjZjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA1LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgTWFrZSBi
aW5kaW5nIERPTSBjb25zdHJ1Y3RvciB1c2UgdG9KU05ld2x5Q3JlYXRlZCBpbnN0ZWFkIG9mIHRv
SlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzgz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzaW5n
IHRvSlNOZXdseUNyZWF0ZWQgaW4gZ2VuZXJhdGVkIGNvbnN0cnVjdG9ycyBpbnN0ZWFkIG9mIHRv
SlMuCisgICAgICAgIEVuYWJsaW5nIGdlbmVyYXRpb24gb2YgdG9KUyBhbmQgdG9KU05ld2x5Q3Jl
YXRlZCBmb3IgY29uc3RydWN0YWJsZSBET00gb2JqZWN0cy4KKyAgICAgICAgVGhpcyBlbnN1cmVz
IHRoYXQgdG9KU05ld2x5Q3JlYXRlZCBjYWxsIGluIGNvbnN0cnVjdG9yIHdpbGwgY29tcGlsZSBw
cm9wZXJseS4KKworICAgICAgICBVcGRhdGluZyBzb21lIGN1c3RvbSBjb2RlIHRvIGltcGxlbWVu
dCB0b0pTTmV3bHlDcmVhdGVkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChT
aG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIpOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgor
CiAyMDE2LTA1LTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgdG8gaGl0dGVzdGluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCA3ZDU3MjVk
NWM5MmQ3NTU0MjdhYjQyMjM2NDkzYWQ2MzZhYjY5YmRjLi5hOWU3M2I3NzVmNTJkMThjZjg3MmNj
ZDVlOGUzMTNjZWI2N2EzMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbWFnZURhdGFDdXN0b20uY3BwCkBAIC0zNSwxOSArMzUsMjQgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbWFnZURhdGEmIGltYWdlRGF0
YSkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8SW1hZ2VEYXRhPiYmIGltYWdlRGF0YSkKIHsKLSAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3Js
ZCgpLCBpbWFnZURhdGEpKQotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAgICAKLSAgICBhdXRv
KiB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhLCBp
bWFnZURhdGEpOwotICAgIElkZW50aWZpZXIgZGF0YU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJkYXRhIik7Ci0gICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGRh
dGFOYW1lLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1hZ2VEYXRhLmRhdGEoKSksIERvbnRE
ZWxldGUgfCBSZWFkT25seSk7CisgICAgYXV0byogZGF0YSA9IGltYWdlRGF0YS0+ZGF0YSgpOwor
ICAgIGF1dG8qIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBJbWFn
ZURhdGEsIFdURk1vdmUoaW1hZ2VEYXRhKSk7CisgICAgSWRlbnRpZmllciBkYXRhTmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsICJkYXRhIik7CisgICAgd3JhcHBlci0+cHV0RGly
ZWN0KHN0YXRlLT52bSgpLCBkYXRhTmFtZSwgdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkYXRh
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICAvLyBGSVhNRTogQWRvcHQgcmVwb3J0RXh0
cmFNZW1vcnlWaXNpdGVkLCBhbmQgc3dpdGNoIHRvIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVk
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1OTUK
LSAgICBleGVjLT5oZWFwKCktPmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShpbWFnZURhdGEu
ZGF0YSgpLT5sZW5ndGgoKSk7CisgICAgc3RhdGUtPmhlYXAoKS0+ZGVwcmVjYXRlZFJlcG9ydEV4
dHJhTWVtb3J5KGRhdGEtPmxlbmd0aCgpKTsKICAgICAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IAorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEltYWdlRGF0YSYgaW1hZ2VEYXRhKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIGltYWdlRGF0YSkpCisg
ICAgICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRl
LCBnbG9iYWxPYmplY3QsIFJlZjxJbWFnZURhdGE+KGltYWdlRGF0YSkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAK
aW5kZXggZTYxNDNhYTAxYzY0MjJkMTVkNzY1MWE5MWFhNGEyODM5NGE3NWE5MC4uZjEzOGRhMTM0
ZmU5MGUxYWU1NjFlOTdiZmNkZTdjMTBlMmNkMTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcApAQCAtNTksMjQgKzU5LDI5
IEBAIGJvb2wgSlNUZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNP
cGFxdWVSb290KHJvb3QodGV4dFRyYWNrQ3VlLnRyYWNrKCkpKTsKIH0KIAotSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRleHRUcmFja0N1
ZSYgY3VlKQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogewotICAgIGlm
IChhdXRvKiB3cmFwcGVyID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCks
IGN1ZSkpCi0gICAgICAgIHJldHVybiB3cmFwcGVyOwotCiAgICAgLy8gVGhpcyBzd2l0Y2ggd2ls
bCBtYWtlIG1vcmUgc2Vuc2Ugb25jZSB3ZSBzdXBwb3J0IERhdGFDdWUKLSAgICBzd2l0Y2ggKGN1
ZS5jdWVUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGN1ZS0+Y3VlVHlwZSgpKSB7CiAgICAgY2FzZSBU
ZXh0VHJhY2tDdWU6OkRhdGE6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBEYXRhQ3VlLCBjdWUpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGdsb2JhbE9iamVjdCwgRGF0YUN1ZSwgV1RGTW92ZShjdWUpKTsKICAgICBjYXNlIFRleHRU
cmFja0N1ZTo6V2ViVlRUOgogICAgIGNhc2UgVGV4dFRyYWNrQ3VlOjpHZW5lcmljOgotICAgICAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBjdWUpOwor
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBX
VEZNb3ZlKGN1ZSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgfQogfQogCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNr
Q3VlJiBjdWUpCit7CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVyKGds
b2JhbE9iamVjdC0+d29ybGQoKSwgY3VlKSkKKyAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisKKyAg
ICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGV4dFRy
YWNrQ3VlPihjdWUpKTsKK30KKwogdm9pZCBKU1RleHRUcmFja0N1ZTo6dmlzaXRBZGRpdGlvbmFs
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgaWYgKFRleHRUcmFjayogdGV4
dFRyYWNrID0gd3JhcHBlZCgpLnRyYWNrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3MTc4ZDE1MDE0MTYzYjAxNWQx
ZmZhZWJkZjNiMDRhYzZjYWQ4MzIuLjEyYmZiZDM3MmE5MDVkY2NlZGI2ZTg0ZWUyZjYwMGVlNDc3
OWVkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC00NzQsNiArNDc0LDcgQEAgc3ViIFNob3VsZEdlbmVyYXRlVG9KU0Rl
Y2xhcmF0aW9uCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbVByb3h5VG9KU09iamVjdCJ9OwogICAgIHJldHVybiAxIGlmICghJGhhc1BhcmVu
dCBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QifSBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KU09iamVj
dCJ9KTsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5wYXJlbnQgJiYgJGludGVyZmFjZS0+
cGFyZW50IGVxICJFdmVudFRhcmdldCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAt
NTE1NCw3ICs1MTU1LDcgQEAgRU5ECiAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3
bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmpl
Y3QpKSkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAwM2Y5ZjM5OWVkNmI2
N2Q5YzA1MWQxMTk2NmY1NWM2ODJhNzIwOTlhLi4zM2E3NmNlMjViMjA4ZWZmNGNmNGEyNTVkOGQ3
MDBjZTY5YjIyMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBA
IHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihzdGF0ZSwg
ZWMpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgfQot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDg5OGVmMjkyYTE3ZTk5OGM2MTFjMDRhZmU3
NTYzMzQ1NzhjM2MzZGYuLjIzMDAyMzZiZGE5YThkZDgzYTlkYTUxZWI0N2ZlMTQ3OTlhYzM1NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OgogICAgICAgICBzZXRET01FeGNlcHRpb24oc3RhdGUs
IGVjKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0K
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFs
dWUgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0
cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmNwcAppbmRleCAzZDAyNjhlOWYxMTBhNmYwMTE0NDYxNjE0Yjc3NThjNTIzZjcw
MmEyLi5jYzhlYmU1YWVmYThiZTBmMjcyZTlhN2E5NGExNWE4YmI4MTI1ZGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUu
Y3BwCkBAIC04MCw3ICs4MCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3RhCiB7CiAgICAgYXV0
byogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3ROb2RlQ29uc3RydWN0b3IqPihzdGF0ZS0+Y2Fs
bGVlKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE5vZGU6OmNyZWF0ZSgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RO
b2RlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTIzNCw1ICsyMzQsNDUgQEAgdm9p
ZCBKU1Rlc3ROb2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnZpc2l0SlNFdmVudExpc3RlbmVycyh2
aXNpdG9yKTsKIH0KIAorI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKKyNpZiBQTEFURk9S
TShXSU4pCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKK2V4dGVybiAiQyIgeyBleHRl
cm4gdm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1Rlc3ROb2RlQFdlYkNvcmVAQDZCQCIp
W10pKCk7IH0KKyNlbHNlCitleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNvcmU4
VGVzdE5vZGVFW107IH0KKyNlbmRpZgorI2VuZGlmCisKK0pTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3ROb2RlPiYmIGltcGwpCit7CisgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNU
ZXN0Tm9kZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKK30KKworSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
ZXN0Tm9kZSYgaW1wbCkKK3sKKyAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBnZXRFeGlzdGluZ1dy
YXBwZXI8SlNUZXN0Tm9kZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKworI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKKyAgICB2b2lkKiBhY3R1YWxW
VGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oJmltcGwpKTsKKyNpZiBQ
TEFURk9STShXSU4pCisgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oX19pZGVudGlmaWVyKCI/P183VGVzdE5vZGVAV2ViQ29yZUBANkJAIikp
OworI2Vsc2UKKyAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29y
ZThUZXN0Tm9kZUVbMl07CisjaWYgQ09NUElMRVIoQ0xBTkcpCisgICAgLy8gSWYgdGhpcyBmYWls
cyBUZXN0Tm9kZSBkb2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVlZCB0byBhZGQgdGhl
CisgICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUgdG8gdGhlIGludGVy
ZmFjZSBkZWZpbml0aW9uCisgICAgc3RhdGljX2Fzc2VydChfX2lzX3BvbHltb3JwaGljKFRlc3RO
b2RlKSwgIlRlc3ROb2RlIGlzIG5vdCBwb2x5bW9ycGhpYyIpOworI2VuZGlmCisjZW5kaWYKKyAg
ICAvLyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRl
ciBmcmVlIGJ1Zywgb3IKKyAgICAvLyBUZXN0Tm9kZSBoYXMgc3ViY2xhc3Nlcy4gSWYgVGVzdE5v
ZGUgaGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQgcGFzc2VkCisgICAgLy8gdG8gdG9KUygpIHdlIGN1
cnJlbnRseSByZXF1aXJlIFRlc3ROb2RlIHlvdSB0byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVu
aW5nCisgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUg
dG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgorICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVh
bFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKKyNlbmRpZgorICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5vZGUsIFRlc3ROb2RlPihnbG9iYWxPYmplY3Qs
IGltcGwpOworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCmluZGV4IDVlNmIxMDcwNTRhZWZhZmEyNzQ5Y2Y3ZmEy
ODUzZTgyOTMzYTFjYTMuLjQyNjg4NDJlOWYwZWY5YmIxZWYxMTU1ODVkMWIyZDRiM2VlYmM5Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuaApAQCAtNjUsNiArNjUsMTAgQEAgcHJvdGVjdGVkOgogCiB9OwogCitXRUJDT1JF
X1RFU1RTVVBQT1JUX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5vZGUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3ROb2RlKiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAq
aW1wbCkgOiBKU0M6OmpzTnVsbCgpOyB9CitKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3ROb2RlPiYmKTsKK2lu
bGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxUZXN0Tm9kZT4mJiBpbXBs
KSB7IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBp
bXBsLnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051bGwoKTsgfQogCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMjYxZmE3MGE1NWRjYzBjNjU2Y2RkMjM3ZmNjNzBj
MjQzMzRhMzFiMi4uMTU5YTBjMTE1MGVlNjc5MTc0MTZhYTViY2EwYzI4OTY4ZGVlYTcwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKQEAgLTEwMjQsNyArMTAyNCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0CiAg
ICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcigqc3RhdGUsIDEs
ICJ0ZXN0Q2FsbGJhY2tGdW5jdGlvbiIsICJUZXN0T2JqIiwgbnVsbHB0cik7CiAgICAgUmVmUHRy
PFRlc3RDYWxsYmFja0Z1bmN0aW9uPiB0ZXN0Q2FsbGJhY2tGdW5jdGlvbiA9IEpTVGVzdENhbGxi
YWNrRnVuY3Rpb246OmNyZWF0ZShhc09iamVjdChzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSkp
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgYXV0byBvYmplY3QgPSBUZXN0T2Jq
OjpjcmVhdGUoKnRlc3RDYWxsYmFjaywgKnRlc3RDYWxsYmFja0Z1bmN0aW9uKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
T2JqQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA0ODNjYTEyMTBlNzk0ZWI5MTljNWRlZjkzZTc2
MzczMDA1NDE5NjMxLi5kNDNkNzkyZGJmNTRkZGYxZTE5NDM1NTBjYTA2NTU5ZWI1MTgzNWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yczEoRXhlY1N0YXRlKiBzCiAgICAgaWYgKFVOTElLRUxZKCFhcnJh
eUJ1ZmZlcikpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0ZSwg
MCwgImFycmF5QnVmZmVyIiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwg
IkFycmF5QnVmZmVyIik7CiAgICAgYXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yczo6Y3JlYXRlKCphcnJheUJ1ZmZlcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShh
c09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShv
YmplY3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05ld2x5
Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0
KSkpKTsKIH0KIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzMihFeGVjU3RhdGUqIHN0YXRlKQpAQCAtOTAsNyArOTAsNyBA
QCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMyKEV4ZWNTdGF0ZSogcwogICAgIGlmIChVTkxJS0VMWSghYXJyYXlCdWZmZXJW
aWV3KSkKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCAwLCAi
YXJyYXlCdWZmZXJWaWV3IiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwg
IkFycmF5QnVmZmVyVmlldyIpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnM6OmNyZWF0ZSgqYXJyYXlCdWZmZXJWaWV3KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBX
VEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0
b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92
ZShvYmplY3QpKSkpOwogfQogCiBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVj
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMzKEV4ZWNTdGF0ZSogc3RhdGUpCkBAIC0xMDIs
NyArMTAyLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzMyhFeGVjU3RhdGUqIHMKICAgICBpZiAoVU5MSUtFTFkoIWJs
b2IpKQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqc3RhdGUsIDAsICJi
bG9iIiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwgIkJsb2IiKTsKICAg
ICBhdXRvIG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoKmJsb2Ip
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQoRXhl
Y1N0YXRlKiBzdGF0ZSkKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM0KEV4ZWNTdGF0ZSog
cwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShzdHJpbmcpOwotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2Jq
ZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBX
VEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29u
c3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUoRXhlY1N0YXRlKiBzdGF0ZSkKQEAg
LTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KEV4ZWNTdGF0ZSogcwogICAgIGlmIChVTkxJS0VM
WShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6OmNyZWF0ZShsb25nQXJncyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09i
amVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmpl
Y3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05ld2x5Q3Jl
YXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkp
KTsKIH0KIAogdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogc3Rh
dGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCAzYmYxMzQxZDFjZmQ2MTM2MTYxZTQ5YWRkNWVj
NTI2MDU0NmJlZDZkLi5mYzM1ZTUxZDhkZjc1NGZiMThjMWIyMjc5OGY2OGNmYjQ3MjI2NWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB0ZW1wbGF0ZTw+IEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0KEV4ZQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3Io
KnN0YXRlLCAxLCAidGVzdENhbGxiYWNrIiwgIlRlc3RUeXBlZGVmcyIsIG51bGxwdHIpOwogICAg
IFJlZlB0cjxUZXN0Q2FsbGJhY2s+IHRlc3RDYWxsYmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVh
dGUoYXNPYmplY3Qoc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKSwgY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdFR5cGVkZWZzOjpjcmVhdGUoaGVs
bG8sICp0ZXN0Q2FsbGJhY2spOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQo
c3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9
CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279363</attachid>
            <date>2016-05-18 23:45:10 -0700</date>
            <delta_ts>2016-05-19 00:13:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157832-20160519084609.patch</filename>
            <type>text/plain</type>
            <size>18361</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdkMjYzYWZjYzA0YWE0
ZjVmYWQ0MmMyNDg5MGQ3ZTcxMTM2NDUyNy4uNWUwZWJmZGY4MTllMzkyMDcxMThhOWU5OTAyMmM3
YjFlNjgzNjdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA1LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgTWFrZSBi
aW5kaW5nIERPTSBjb25zdHJ1Y3RvciB1c2UgdG9KU05ld2x5Q3JlYXRlZCBpbnN0ZWFkIG9mIHRv
SlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzgz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFVzaW5nIHRv
SlNOZXdseUNyZWF0ZWQgaW4gZ2VuZXJhdGVkIGNvbnN0cnVjdG9ycyBpbnN0ZWFkIG9mIHRvSlMu
CisgICAgICAgIEVuYWJsaW5nIGdlbmVyYXRpb24gb2YgdG9KUyBhbmQgdG9KU05ld2x5Q3JlYXRl
ZCBmb3IgY29uc3RydWN0YWJsZSBET00gb2JqZWN0cy4KKyAgICAgICAgVGhpcyBlbnN1cmVzIHRo
YXQgdG9KU05ld2x5Q3JlYXRlZCBjYWxsIGluIGNvbnN0cnVjdG9yIHdpbGwgY29tcGlsZSBwcm9w
ZXJseS4KKworICAgICAgICBVcGRhdGluZyBzb21lIGN1c3RvbSBjb2RlIHRvIGltcGxlbWVudCB0
b0pTTmV3bHlDcmVhdGVkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChTaG91
bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
b2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlD
cmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2Jq
Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorCiAy
MDE2LTA1LTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgdG8gaGl0dGVzdGluZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAppbmRleCA3ZDU3MjVkNWM5
MmQ3NTU0MjdhYjQyMjM2NDkzYWQ2MzZhYjY5YmRjLi5hOWU3M2I3NzVmNTJkMThjZjg3MmNjZDVl
OGUzMTNjZWI2N2EzMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZURhdGFDdXN0b20uY3BwCkBAIC0zNSwxOSArMzUsMjQgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJbWFnZURhdGEmIGltYWdlRGF0YSkK
K0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8SW1hZ2VEYXRhPiYmIGltYWdlRGF0YSkKIHsKLSAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgp
LCBpbWFnZURhdGEpKQotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAgICAKLSAgICBhdXRvKiB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhLCBpbWFn
ZURhdGEpOwotICAgIElkZW50aWZpZXIgZGF0YU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KGV4ZWMsICJkYXRhIik7Ci0gICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGRhdGFO
YW1lLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1hZ2VEYXRhLmRhdGEoKSksIERvbnREZWxl
dGUgfCBSZWFkT25seSk7CisgICAgYXV0byogZGF0YSA9IGltYWdlRGF0YS0+ZGF0YSgpOworICAg
IGF1dG8qIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBJbWFnZURh
dGEsIFdURk1vdmUoaW1hZ2VEYXRhKSk7CisgICAgSWRlbnRpZmllciBkYXRhTmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsICJkYXRhIik7CisgICAgd3JhcHBlci0+cHV0RGlyZWN0
KHN0YXRlLT52bSgpLCBkYXRhTmFtZSwgdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkYXRhKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICAvLyBGSVhNRTogQWRvcHQgcmVwb3J0RXh0cmFN
ZW1vcnlWaXNpdGVkLCBhbmQgc3dpdGNoIHRvIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkLgog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1OTUKLSAg
ICBleGVjLT5oZWFwKCktPmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShpbWFnZURhdGEuZGF0
YSgpLT5sZW5ndGgoKSk7CisgICAgc3RhdGUtPmhlYXAoKS0+ZGVwcmVjYXRlZFJlcG9ydEV4dHJh
TWVtb3J5KGRhdGEtPmxlbmd0aCgpKTsKICAgICAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAor
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEltYWdlRGF0YSYgaW1hZ2VEYXRhKQoreworICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
Z2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIGltYWdlRGF0YSkpCisgICAg
ICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBn
bG9iYWxPYmplY3QsIFJlZjxJbWFnZURhdGE+KGltYWdlRGF0YSkpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKaW5k
ZXggZTYxNDNhYTAxYzY0MjJkMTVkNzY1MWE5MWFhNGEyODM5NGE3NWE5MC4uZjEzOGRhMTM0ZmU5
MGUxYWU1NjFlOTdiZmNkZTdjMTBlMmNkMTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcApAQCAtNTksMjQgKzU5LDI5IEBA
IGJvb2wgSlNUZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFx
dWVSb290KHJvb3QodGV4dFRyYWNrQ3VlLnRyYWNrKCkpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRleHRUcmFja0N1ZSYg
Y3VlKQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogewotICAgIGlmIChh
dXRvKiB3cmFwcGVyID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIGN1
ZSkpCi0gICAgICAgIHJldHVybiB3cmFwcGVyOwotCiAgICAgLy8gVGhpcyBzd2l0Y2ggd2lsbCBt
YWtlIG1vcmUgc2Vuc2Ugb25jZSB3ZSBzdXBwb3J0IERhdGFDdWUKLSAgICBzd2l0Y2ggKGN1ZS5j
dWVUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGN1ZS0+Y3VlVHlwZSgpKSB7CiAgICAgY2FzZSBUZXh0
VHJhY2tDdWU6OkRhdGE6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFs
T2JqZWN0LCBEYXRhQ3VlLCBjdWUpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVS
KGdsb2JhbE9iamVjdCwgRGF0YUN1ZSwgV1RGTW92ZShjdWUpKTsKICAgICBjYXNlIFRleHRUcmFj
a0N1ZTo6V2ViVlRUOgogICAgIGNhc2UgVGV4dFRyYWNrQ3VlOjpHZW5lcmljOgotICAgICAgICBy
ZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBjdWUpOworICAg
ICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVlRUQ3VlLCBXVEZN
b3ZlKGN1ZSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgfQogfQogCitKU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNrQ3Vl
JiBjdWUpCit7CisgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVyKGdsb2Jh
bE9iamVjdC0+d29ybGQoKSwgY3VlKSkKKyAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisKKyAgICBy
ZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8VGV4dFRyYWNr
Q3VlPihjdWUpKTsKK30KKwogdm9pZCBKU1RleHRUcmFja0N1ZTo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgaWYgKFRleHRUcmFjayogdGV4dFRy
YWNrID0gd3JhcHBlZCgpLnRyYWNrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3MTc4ZDE1MDE0MTYzYjAxNWQxZmZh
ZWJkZjNiMDRhYzZjYWQ4MzIuLjEyYmZiZDM3MmE5MDVkY2NlZGI2ZTg0ZWUyZjYwMGVlNDc3OWVk
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC00NzQsNiArNDc0LDcgQEAgc3ViIFNob3VsZEdlbmVyYXRlVG9KU0RlY2xh
cmF0aW9uCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbVByb3h5VG9KU09iamVjdCJ9OwogICAgIHJldHVybiAxIGlmICghJGhhc1BhcmVudCBv
ciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvSlNPYmplY3Qi
fSBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KU09iamVjdCJ9
KTsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5wYXJlbnQgJiYgJGludGVyZmFjZS0+cGFy
ZW50IGVxICJFdmVudFRhcmdldCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTE1
NCw3ICs1MTU1LDcgQEAgRU5ECiAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlD
cmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3Qp
KSkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAwM2Y5ZjM5OWVkNmI2N2Q5
YzA1MWQxMTk2NmY1NWM2ODJhNzIwOTlhLi4zM2E3NmNlMjViMjA4ZWZmNGNmNGEyNTVkOGQ3MDBj
ZTY5YjIyMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHRl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0KEV4CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihzdGF0ZSwgZWMp
OwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgfQotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBK
U1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0m
IHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDg5OGVmMjkyYTE3ZTk5OGM2MTFjMDRhZmU3NTYz
MzQ1NzhjM2MzZGYuLjIzMDAyMzZiZGE5YThkZDgzYTlkYTUxZWI0N2ZlMTQ3OTlhYzM1NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB0
ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvck5hbWVkQ29uc3RydWN0b3I6OgogICAgICAgICBzZXRET01FeGNlcHRpb24oc3RhdGUsIGVj
KTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0KLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUg
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcAppbmRleCAzZDAyNjhlOWYxMTBhNmYwMTE0NDYxNjE0Yjc3NThjNTIzZjcwMmEy
Li5jYzhlYmU1YWVmYThiZTBmMjcyZTlhN2E5NGExNWE4YmI4MTI1ZGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
CkBAIC04MCw3ICs4MCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3RhCiB7CiAgICAgYXV0byog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3ROb2RlQ29uc3RydWN0b3IqPihzdGF0ZS0+Y2FsbGVl
KCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE5vZGU6OmNyZWF0ZSgpOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFz
T2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROb2Rl
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTIzNCw1ICsyMzQsNDUgQEAgdm9pZCBK
U1Rlc3ROb2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNp
dG9yKTsKIH0KIAorI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKKyNpZiBQTEFURk9STShX
SU4pCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKK2V4dGVybiAiQyIgeyBleHRlcm4g
dm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1Rlc3ROb2RlQFdlYkNvcmVAQDZCQCIpW10p
KCk7IH0KKyNlbHNlCitleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNvcmU4VGVz
dE5vZGVFW107IH0KKyNlbmRpZgorI2VuZGlmCisKK0pTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3ROb2RlPiYmIGltcGwpCit7CisgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
Tm9kZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKK30KKworSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
Tm9kZSYgaW1wbCkKK3sKKyAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBnZXRFeGlzdGluZ1dyYXBw
ZXI8SlNUZXN0Tm9kZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKSkKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKworI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKKyAgICB2b2lkKiBhY3R1YWxWVGFi
bGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oJmltcGwpKTsKKyNpZiBQTEFU
Rk9STShXSU4pCisgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oX19pZGVudGlmaWVyKCI/P183VGVzdE5vZGVAV2ViQ29yZUBANkJAIikpOwor
I2Vsc2UKKyAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29yZThU
ZXN0Tm9kZUVbMl07CisjaWYgQ09NUElMRVIoQ0xBTkcpCisgICAgLy8gSWYgdGhpcyBmYWlscyBU
ZXN0Tm9kZSBkb2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVlZCB0byBhZGQgdGhlCisg
ICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFj
ZSBkZWZpbml0aW9uCisgICAgc3RhdGljX2Fzc2VydChfX2lzX3BvbHltb3JwaGljKFRlc3ROb2Rl
KSwgIlRlc3ROb2RlIGlzIG5vdCBwb2x5bW9ycGhpYyIpOworI2VuZGlmCisjZW5kaWYKKyAgICAv
LyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRlciBm
cmVlIGJ1Zywgb3IKKyAgICAvLyBUZXN0Tm9kZSBoYXMgc3ViY2xhc3Nlcy4gSWYgVGVzdE5vZGUg
aGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQgcGFzc2VkCisgICAgLy8gdG8gdG9KUygpIHdlIGN1cnJl
bnRseSByZXF1aXJlIFRlc3ROb2RlIHlvdSB0byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5n
CisgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8g
dGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgorICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZU
YWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKKyNlbmRpZgorICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5vZGUsIFRlc3ROb2RlPihnbG9iYWxPYmplY3QsIGlt
cGwpOworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCmluZGV4IDVlNmIxMDcwNTRhZWZhZmEyNzQ5Y2Y3ZmEyODUz
ZTgyOTMzYTFjYTMuLjQyNjg4NDJlOWYwZWY5YmIxZWYxMTU1ODVkMWIyZDRiM2VlYmM5YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuaApAQCAtNjUsNiArNjUsMTAgQEAgcHJvdGVjdGVkOgogCiB9OwogCitXRUJDT1JFX1RF
U1RTVVBQT1JUX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgVGVzdE5vZGUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RO
b2RlKiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAqaW1w
bCkgOiBKU0M6OmpzTnVsbCgpOyB9CitKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3ROb2RlPiYmKTsKK2lubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxUZXN0Tm9kZT4mJiBpbXBsKSB7
IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBpbXBs
LnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051bGwoKTsgfQogCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMjYxZmE3MGE1NWRjYzBjNjU2Y2RkMjM3ZmNjNzBjMjQz
MzRhMzFiMi4uMTU5YTBjMTE1MGVlNjc5MTc0MTZhYTViY2EwYzI4OTY4ZGVlYTcwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKQEAgLTEwMjQsNyArMTAyNCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0CiAgICAg
ICAgIHJldHVybiB0aHJvd0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcigqc3RhdGUsIDEsICJ0
ZXN0Q2FsbGJhY2tGdW5jdGlvbiIsICJUZXN0T2JqIiwgbnVsbHB0cik7CiAgICAgUmVmUHRyPFRl
c3RDYWxsYmFja0Z1bmN0aW9uPiB0ZXN0Q2FsbGJhY2tGdW5jdGlvbiA9IEpTVGVzdENhbGxiYWNr
RnVuY3Rpb246OmNyZWF0ZShhc09iamVjdChzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSkpLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgYXV0byBvYmplY3QgPSBUZXN0T2JqOjpj
cmVhdGUoKnRlc3RDYWxsYmFjaywgKnRlc3RDYWxsYmFja0Z1bmN0aW9uKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShh
c09iamVjdCh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGTW92ZShvYmplY3QpKSkpOwogfQogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T2Jq
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA0ODNjYTEyMTBlNzk0ZWI5MTljNWRlZjkzZTc2Mzcz
MDA1NDE5NjMxLi5kNDNkNzkyZGJmNTRkZGYxZTE5NDM1NTBjYTA2NTU5ZWI1MTgzNWU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yczEoRXhlY1N0YXRlKiBzCiAgICAgaWYgKFVOTElLRUxZKCFhcnJheUJ1
ZmZlcikpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0ZSwgMCwg
ImFycmF5QnVmZmVyIiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwgIkFy
cmF5QnVmZmVyIik7CiAgICAgYXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
czo6Y3JlYXRlKCphcnJheUJ1ZmZlcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09i
amVjdCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmpl
Y3QpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05ld2x5Q3Jl
YXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkp
KTsKIH0KIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzMihFeGVjU3RhdGUqIHN0YXRlKQpAQCAtOTAsNyArOTAsNyBAQCBz
dGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMyKEV4ZWNTdGF0ZSogcwogICAgIGlmIChVTkxJS0VMWSghYXJyYXlCdWZmZXJWaWV3
KSkKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCAwLCAiYXJy
YXlCdWZmZXJWaWV3IiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwgIkFy
cmF5QnVmZmVyVmlldyIpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6OmNyZWF0ZSgqYXJyYXlCdWZmZXJWaWV3KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzT2JqZWN0KHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZN
b3ZlKG9iamVjdCkpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pT
TmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShv
YmplY3QpKSkpOwogfQogCiBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMzKEV4ZWNTdGF0ZSogc3RhdGUpCkBAIC0xMDIsNyAr
MTAyLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzMyhFeGVjU3RhdGUqIHMKICAgICBpZiAoVU5MSUtFTFkoIWJsb2Ip
KQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqc3RhdGUsIDAsICJibG9i
IiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwgIkJsb2IiKTsKICAgICBh
dXRvIG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoKmJsb2IpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczQoRXhlY1N0
YXRlKiBzdGF0ZSkKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM0KEV4ZWNTdGF0ZSogcwog
ICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShzdHJpbmcpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNPYmplY3QodG9KUyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IFdURk1vdmUob2JqZWN0KSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0
KHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZN
b3ZlKG9iamVjdCkpKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3Ry
dWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczUoRXhlY1N0YXRlKiBzdGF0ZSkKQEAgLTEy
NCw3ICsxMjQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KEV4ZWNTdGF0ZSogcwogICAgIGlmIChVTkxJS0VMWShz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OmNyZWF0ZShsb25nQXJncyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVj
dCh0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3Qp
KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KU05ld2x5Q3JlYXRl
ZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsK
IH0KIAogdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogc3RhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCAzYmYxMzQxZDFjZmQ2MTM2MTYxZTQ5YWRkNWVjNTI2
MDU0NmJlZDZkLi5mYzM1ZTUxZDhkZjc1NGZiMThjMWIyMjc5OGY2OGNmYjQ3MjI2NWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
KEV4ZQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudE11c3RCZUZ1bmN0aW9uRXJyb3IoKnN0
YXRlLCAxLCAidGVzdENhbGxiYWNrIiwgIlRlc3RUeXBlZGVmcyIsIG51bGxwdHIpOwogICAgIFJl
ZlB0cjxUZXN0Q2FsbGJhY2s+IHRlc3RDYWxsYmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVhdGUo
YXNPYmplY3Qoc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKSwgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdFR5cGVkZWZzOjpjcmVhdGUoaGVsbG8s
ICp0ZXN0Q2FsbGJhY2spOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9K
UyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUob2JqZWN0KSkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG9iamVjdCkpKSk7CiB9CiAK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>