<?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>187270</bug_id>
          
          <creation_ts>2018-07-02 14:39:04 -0700</creation_ts>
          <short_desc>[Cocoa] Disable vnode guard related simulated crashes for WKTR / DRT and WebSQL</short_desc>
          <delta_ts>2020-12-22 16:09:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220108</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1438640</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-02 14:39:04 -0700</bug_when>
    <thetext>Disable vnode guard related simulated crashes for WKTR / DRT and WebSQL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438641</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-02 14:39:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/40674034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438708</commentid>
    <comment_count>2</comment_count>
      <attachid>344149</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-02 16:58:38 -0700</bug_when>
    <thetext>Created attachment 344149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438709</commentid>
    <comment_count>3</comment_count>
      <attachid>344150</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-02 17:01:09 -0700</bug_when>
    <thetext>Created attachment 344150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438789</commentid>
    <comment_count>4</comment_count>
      <attachid>344150</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-07-03 02:19:49 -0700</bug_when>
    <thetext>Comment on attachment 344150
Patch

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

&gt; Source/WebCore/platform/posix/FileSystemPOSIX.cpp:454
&gt; +String realPath(const String&amp; filePath)
&gt; +{
&gt; +    CString fsRep = fileSystemRepresentation(filePath);
&gt; +    char resolvedName[PATH_MAX];
&gt; +    const char* result = realpath(fsRep.data(), resolvedName);
&gt; +    return result ? String::fromUTF8(result) : filePath;
&gt; +}

This doesn&apos;t look right to me. The idea behind fileSystemRepresentation() is that this is what one passes to POSIX functions, but here, the result is round-tripped through String::fromUTF8() and then utf8(). I don&apos;t really have an example of when this would fail, but this is conceptually incorrect and of course wasteful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438857</commentid>
    <comment_count>5</comment_count>
      <attachid>344150</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-03 08:48:24 -0700</bug_when>
    <thetext>Comment on attachment 344150
Patch

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

&gt;&gt; Source/WebCore/platform/posix/FileSystemPOSIX.cpp:454
&gt;&gt; +}
&gt; 
&gt; This doesn&apos;t look right to me. The idea behind fileSystemRepresentation() is that this is what one passes to POSIX functions, but here, the result is round-tripped through String::fromUTF8() and then utf8(). I don&apos;t really have an example of when this would fail, but this is conceptually incorrect and of course wasteful.

I am passing the result of fileSystemRepresentation() to a Posix function: realpath().
realpath() returns a const char* so I have to call String::fromUTF8() to return a String.

I do not see what is wrong with my code.

Also, if you look at the implementation of directoryName(), it is extremely similar:
String directoryName(const String&amp; path)
{
    CString fsRep = fileSystemRepresentation(path);

    if (!fsRep.data() || fsRep.data()[0] == &apos;\0&apos;)
        return String();

    return String::fromUTF8(dirname(fsRep.mutableData()));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438890</commentid>
    <comment_count>6</comment_count>
      <attachid>344196</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-03 10:50:40 -0700</bug_when>
    <thetext>Created attachment 344196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438933</commentid>
    <comment_count>7</comment_count>
      <attachid>344196</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-07-03 13:01:01 -0700</bug_when>
    <thetext>Comment on attachment 344196
Patch

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

&gt; Source/WebCore/Modules/webdatabase/cocoa/DatabaseManagerCocoa.mm:43
&gt; +    setenv(&quot;SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS&quot;, FileSystem::realPath(databasePath).utf8().data(), 0 /* overwrite */);

A minor point, but I prefer this style for giving symbolic names to constant arguments:

int overwrite = 0;
setenv(&quot;SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS&quot;, FileSystem::realPath(databasePath).utf8().data(), overwrite);

It&apos;s nice when we can document our intent in code. Code has some nice advantages over comments, like compiler validation and debugging and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438938</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-07-03 13:15:51 -0700</bug_when>
    <thetext>&gt; The idea behind fileSystemRepresentation() is
&gt; that this is what one passes to POSIX functions

This function calls fileSystemRepresentation() in order to pass the result to the POSIX function realpath(). So, I think that part of the function matches your expectation.

&gt; but here, the result is
&gt; round-tripped through String::fromUTF8() and then utf8(). I don&apos;t really
&gt; have an example of when this would fail, but this is conceptually incorrect
&gt; and of course wasteful.

I think your comment here is about the return value type?

Most functions in FileSystemPOSIX.cpp return String.

You could imagine returning CString from this function because that&apos;s what POSIX provides, and that&apos;s what our caller wants. 

On the other hand, there&apos;s a conflict here between POSIX and Windows. Windows returns a buffer of UChar (i.e. String). So returning CString would require getFinalPathName() in FileSystemWin to convert from UChar buffer to CString. Maybe that&apos;s the right tradeoff to make POSIX slightly faster?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438982</commentid>
    <comment_count>9</comment_count>
      <attachid>344215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-03 14:19:45 -0700</bug_when>
    <thetext>Created attachment 344215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439049</commentid>
    <comment_count>10</comment_count>
      <attachid>344215</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-07-03 16:23:39 -0700</bug_when>
    <thetext>Comment on attachment 344215
Patch

I’m going to say r+ to move this fix along — but we can continue to discuss whether there’s a good way to avoid utf8 round tripping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439062</commentid>
    <comment_count>11</comment_count>
      <attachid>344215</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-03 16:54:53 -0700</bug_when>
    <thetext>Comment on attachment 344215
Patch

Clearing flags on attachment: 344215

Committed r233487: &lt;https://trac.webkit.org/changeset/233487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439063</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-03 16:54:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439178</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-07-04 03:12:46 -0700</bug_when>
    <thetext>I like Geoff&apos;s suggestion. Alternatively, maybe there is a way to restructure code so that it doesn&apos;t even need to be called on Windows. Realpath is a POSIX concept, so adding a Windows function with this name which does nothing is quite misleading.

Or maybe we need to actually do something on Windows too, like https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfullpathnamea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439242</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-04 09:37:15 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #13)
&gt; I like Geoff&apos;s suggestion. Alternatively, maybe there is a way to
&gt; restructure code so that it doesn&apos;t even need to be called on Windows.
&gt; Realpath is a POSIX concept, so adding a Windows function with this name
&gt; which does nothing is quite misleading.
&gt; Or maybe we need to actually do something on Windows too, like
&gt; https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-
&gt; getfullpathnamea

This is inaccurate, my patch did provide a meaningful Windows implementation.
Note that the very first patch you took a look at did not have a review flag and the lack of windows implementation was one of the reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439518</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-07-05 13:25:54 -0700</bug_when>
    <thetext>&gt; Or maybe we need to actually do something on Windows too, like
&gt; https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-
&gt; getfullpathnamea

Right, it seems clear that Windows does have a concept of &quot;~&quot; and similar abbreviations in file names.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344149</attachid>
            <date>2018-07-02 16:58:38 -0700</date>
            <delta_ts>2018-07-02 17:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187270-20180702165837.patch</filename>
            <type>text/plain</type>
            <size>12509</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ5YWQwYmYxYmY3ZGNi
OTk5ZmY1YzcwMDNmZDRiOGEwMWViMjIwOC4uNDRmOGYzYzI0MjdkYzA3ZGFiYmQ5MWM0Nzk4MmFk
MGE1N2JjZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEaXNhYmxlIHZu
b2RlIGd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYW5kIFdl
YlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3
MjcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDY3NDAzND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHZub2RlIGd1YXJkIHJlbGF0
ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdlYlNRTCBieSBzZXR0aW5nIHRoZSBleHBlY3RlZAor
ICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgbm90IGFscmVhZHkgc2V0IGJ5IFdLVFIg
LyBEUlQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OnBhbHRmb3JtSW5pdGlhbGl6ZSk6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtOjpyZWFsUGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cmVhbFBhdGgpOgor
CiAyMDE4LTA3LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWplY3QgZ2V0VXNlck1lZGlhIHByb21pc2UgaWYgY2FwdHVyZSBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
CmluZGV4IGJiZjQ0OTNiN2U5YTNjNTIzYTNiOTllZjFkOGE5NDA3ZmM5NTNiYjUuLmZmYjdlODZh
Mjg5NWZmMmRkNTZiMDgwOTg1ZmE3ZDkxNmVlY2Y5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTc3LDYg
Kzc3LDcgQEAgRGF0YWJhc2VNYW5hZ2VyJiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpCiAK
IHZvaWQgRGF0YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQ
YXRoKQogeworICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwogICAgIERhdGFi
YXNlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKIH0KIApAQCAtMjcx
LDQgKzI3MiwxMSBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6bG9nRXJyb3JNZXNzYWdlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cgogICAgIGNvbnRleHQuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpFcnJvciwg
bWVzc2FnZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIERhdGFiYXNlTWFuYWdl
cjo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQoreworICAg
IFVOVVNFRF9QQVJBTShkYXRhYmFzZVBhdGgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlTWFuYWdlci5oCmluZGV4IDJjYjRhNDRlN2NjZTgxZTk4MDEzOGZlYTdhYWFhNWM2NGUx
YTNhZmEuLjkxMzIyZTVhMjIzZDI0Yjk0NTYyNTc4NTUzMjcyMjJhYWQxNmU3YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIu
aApAQCAtNzIsNiArNzIsOCBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlcigpID0gZGVm
YXVsdDsKICAgICB+RGF0YWJhc2VNYW5hZ2VyKCkgPSBkZWxldGU7CiAKKyAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CisKICAgICBlbnVtIE9w
ZW5BdHRlbXB0IHsgRmlyc3RUcnlUb09wZW5EYXRhYmFzZSwgUmV0cnlPcGVuRGF0YWJhc2UgfTsK
ICAgICBFeGNlcHRpb25PcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VCYWNrZW5kKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhw
ZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBlc3RpbWF0
ZWRTaXplLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKTsKICAgICBFeGNlcHRpb25PcjxS
ZWY8RGF0YWJhc2U+PiB0cnlUb09wZW5EYXRhYmFzZUJhY2tlbmQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24s
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGVzdGltYXRlZFNpemUsIGJvb2wg
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIE9wZW5BdHRlbXB0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY29jb2EvRGF0YWJhc2VNYW5hZ2VyQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2NvY29hL0RhdGFiYXNlTWFu
YWdlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MmE2M2ZiNmUyYzQxODdlOWNlZWVkMDkyMGNiNzI4
YTFjMWUzOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJEYXRhYmFzZU1hbmFnZXIuaCIKKworI2ltcG9ydCAiRmlsZVN5c3Rl
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRGF0YWJhc2VNYW5hZ2VyOjpwbGF0
Zm9ybUluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCit7CisgICAgLy8gVGhl
IHBhdGggbmVlZHMgdG8gZXhpc3Qgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSBpdCB2aWEgcmVhbFBh
dGgoKS4KKyAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VQYXRoKSkKKyAg
ICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRhdGFiYXNlUGF0aCk7CisKKyAg
ICAvLyBEaXNhYmxlIHZub2RlLWd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdl
YlNRTCAocmRhcjovL3Byb2JsZW0vNDA2NzQwMzQpLiBXZSBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2
YWx1ZSBoZXJlIGFzIGl0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBzZXQgYnkgV0tUUiAvIERSVC4K
KyAgICBzZXRlbnYoIlNRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZOT0RFX0dVQVJEUyIsIEZpbGVT
eXN0ZW06OnJlYWxQYXRoKGRhdGFiYXNlUGF0aCkudXRmOCgpLmRhdGEoKSwgMCAvKiBvdmVyd3Jp
dGUgKi8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAppbmRleCA5N2ZjOWVlOWIyMTY1NDhhZmY1ZDE4ZjU3ZDFjMTQ3ZWVmYmFmYzNmLi5mMGI4ZTk0
NDhiYzBiNDU4ODU3ZWU5YzAzMjlmYTM1ZGJlMzZiNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKQEAgLTI2LDYgKzI2LDcgQEAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5jcHAKIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5t
bQogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKIE1vZHVsZXMv
d2ViYXV0aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCitNb2R1bGVzL3dlYmRhdGFiYXNl
L2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCiAKIGFjY2Vzc2liaWxpdHkvaW9zL0FjY2Vz
c2liaWxpdHlPYmplY3RJT1MubW0KIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBjNDVhNDUwNmExMzk2YTU2YjM0MWQwODg1MTdkNTA5MWU4MTFjYzQwLi5iYzE0NmVh
ZTVhZDQwNTgzMzdlZjU2NjI2ZjFmZGExZDRjNTNiNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NTMwLDYgKzc1MzAsNyBA
QAogCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdDb2xsZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRUI2MjExQjg3ODlDQjAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjQyNDA0
NTIwRUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01S
ZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzE5OSw2ICsxNzIwMCwxNCBAQAog
CQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ2NDI0
MDQ0MjBFQUYwQkQwMEIyOUZEMiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJNDY0MjQwNDUyMEVBRjBFRDAwQjI5RkQyIC8qIERhdGFiYXNl
TWFuYWdlckNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52
YXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEwNTgs
NiArMjEwNjcsNyBAQAogCQk5N0JDNjlENTE1MDVGMDU0MDAxQjc0QUMgLyogd2ViZGF0YWJhc2Ug
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQ2NDI0MDQ0
MjBFQUYwQkQwMEIyOUZEMiAvKiBjb2NvYSAqLywKIAkJCQlGRTM2RkQxMTE2Qzc4MjY0MDBGODg3
QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCAqLywKIAkJCQk5N0JDNjlEODE1MDVGMDc2MDAxQjc0
QUMgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwICovLAogCQkJCTk3QkM2OUQ5MTUwNUYwNzYw
MDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5oICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oCmluZGV4IDg1MzA2NTVjYTgwZWY5MDAyYzY1NGI2MmE2MjNjYWU3NGQzZmU5
YzEuLjgwOGY5YTRiNWU3ZGRmMzA2NWIzYWRkMjAyZjU0NzRhMzljMmVkMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBTdHJpbmcgcm9hbWlu
Z1VzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5n
ICpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoTlNTdHJpbmcgKmRpcmVjdG9yeVByZWZpeCk7CiAj
ZW5kaWYKIAorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlYWxQYXRoKGNvbnN0IFN0cmluZyYpOwor
CiBjbGFzcyBNYXBwZWRGaWxlRGF0YSB7CiBwdWJsaWM6CiAgICAgTWFwcGVkRmlsZURhdGEoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVgu
Y3BwCmluZGV4IDEyMGZmYjI5NjIzOTc5YjlhMGFmY2Q3YWVhY2VmMjFhZjc2NzE2OTEuLjZiNzMy
MDY5NjEyNTkzYThhOWFkMDY1OTMzODk4YmUwZjgyYjI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtNDQ1LDUgKzQ0NSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZpY2VJZChjb25zdCBDU3RyaW5n
JiBmc0ZpbGUpCiAgICAgcmV0dXJuIGZpbGVTdGF0LnN0X2RldjsKIH0KIAorU3RyaW5nIHJlYWxQ
YXRoKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCit7CisgICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihmaWxlUGF0aCk7CisgICAgY2hhciByZXNvbHZlZE5hbWVbUEFU
SF9NQVhdOworICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9IHJlYWxwYXRoKGZzUmVwLmRhdGEoKSwg
cmVzb2x2ZWROYW1lKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gU3RyaW5nOjpmcm9tVVRGOChyZXN1
bHQpIDogZmlsZVBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVt
V2luLmNwcAppbmRleCBlOWUzOWQ4NDJjZWQ2ZDQzNDQwMTM0MGE4NmM5NWI1NjMwNTYzZDQzLi45
NjI4N2FjNzIxMzAzYjBmYjY3OTM2Mzk3MWU4NzkwMzExNDdmNmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC01NDYsNSArNTQ2LDEwIEBA
IHN0ZDo6b3B0aW9uYWw8aW50MzJfdD4gZ2V0RmlsZURldmljZUlkKGNvbnN0IENTdHJpbmcmIGZz
RmlsZSkKICAgICByZXR1cm4gZmlsZUluZm9ybWF0aW9uLmR3Vm9sdW1lU2VyaWFsTnVtYmVyOwog
fQogCitTdHJpbmcgcmVhbFBhdGgoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKK3sKKyAgICByZXR1
cm4gZmlsZVBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA0YmU3MTMzZjhhOTA1NTk5ZmZhN2VmMjc3YmQ3ZTQyOGZmZDI0NTU5Li5iZTNkZGY4
MWQ5OWZlZjAwY2U0MmI5Yjg4ZDJiN2E1YTFiNjZhZDA0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDctMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIERpc2Fi
bGUgdm5vZGUgZ3VhcmQgcmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tUUiAvIERSVCBh
bmQgV2ViU1FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODcyNzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNjc0MDM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgdm5vZGUgZ3VhcmQg
cmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tUUiAvIERSVCBieSBzZXR0aW5nIHRoZQor
ICAgICAgICBleHBlY3RlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgdGVzdCBkcml2ZXIu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAo
RHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl9kcml2ZXIpOgorCiAyMDE4LTA3LTAyICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBBZGQgdG91Y2gg
c3VwcG9ydCB0byBXaW5kb3dWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHkKaW5kZXggZjEyOTVjYWE5MjdlMGEwNjA1YmYzYzdiNWQ1MmZjOTQ3NDNhZmVjOC4uMGQ2
ZDg4ODM2NzY0MDFlODY4NDIzMTQyYjA3YTE3ZGJiNzczNjU1YyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZHJpdmVyLnB5CkBAIC0zNjcsNiArMzY3LDggQEAgY2xhc3MgRHJpdmVyKG9iamVj
dCk6CiAgICAgICAgIGVudmlyb25tZW50WydMT0NBTF9SRVNPVVJDRV9ST09UJ10gPSBzdHIoc2Vs
Zi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkpCiAgICAgICAgIGVudmlyb25tZW50WydBU0FOX09Q
VElPTlMnXSA9ICJhbGxvY2F0b3JfbWF5X3JldHVybl9udWxsPTEiCiAgICAgICAgIGVudmlyb25t
ZW50WydfX1hQQ19BU0FOX09QVElPTlMnXSA9IGVudmlyb25tZW50WydBU0FOX09QVElPTlMnXQor
ICAgICAgICBlbnZpcm9ubWVudFsnU1FMSVRFX0VYRU1QVF9QQVRIX0ZST01fVk5PREVfR1VBUkRT
J10gPSBvcy5wYXRoLnJlYWxwYXRoKGVudmlyb25tZW50WydEVU1QUkVOREVSVFJFRV9URU1QJ10p
CisgICAgICAgIGVudmlyb25tZW50WydfX1hQQ19TUUxJVEVfRVhFTVBUX1BBVEhfRlJPTV9WTk9E
RV9HVUFSRFMnXSA9IGVudmlyb25tZW50WydTUUxJVEVfRVhFTVBUX1BBVEhfRlJPTV9WTk9ERV9H
VUFSRFMnXQogICAgICAgICBpZiBzZWxmLl9wcm9maWxlcjoKICAgICAgICAgICAgIGVudmlyb25t
ZW50ID0gc2VsZi5fcHJvZmlsZXIuYWRqdXN0ZWRfZW52aXJvbm1lbnQoZW52aXJvbm1lbnQpCiAg
ICAgICAgIHJldHVybiBlbnZpcm9ubWVudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344150</attachid>
            <date>2018-07-02 17:01:09 -0700</date>
            <delta_ts>2018-07-03 10:50:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187270-20180702170109.patch</filename>
            <type>text/plain</type>
            <size>12613</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ5YWQwYmYxYmY3ZGNi
OTk5ZmY1YzcwMDNmZDRiOGEwMWViMjIwOC4uNDRmOGYzYzI0MjdkYzA3ZGFiYmQ5MWM0Nzk4MmFk
MGE1N2JjZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEaXNhYmxlIHZu
b2RlIGd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYW5kIFdl
YlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3
MjcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDY3NDAzND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHZub2RlIGd1YXJkIHJlbGF0
ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdlYlNRTCBieSBzZXR0aW5nIHRoZSBleHBlY3RlZAor
ICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgbm90IGFscmVhZHkgc2V0IGJ5IFdLVFIg
LyBEUlQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OnBhbHRmb3JtSW5pdGlhbGl6ZSk6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtOjpyZWFsUGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cmVhbFBhdGgpOgor
CiAyMDE4LTA3LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWplY3QgZ2V0VXNlck1lZGlhIHByb21pc2UgaWYgY2FwdHVyZSBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
CmluZGV4IGJiZjQ0OTNiN2U5YTNjNTIzYTNiOTllZjFkOGE5NDA3ZmM5NTNiYjUuLmZmYjdlODZh
Mjg5NWZmMmRkNTZiMDgwOTg1ZmE3ZDkxNmVlY2Y5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTc3LDYg
Kzc3LDcgQEAgRGF0YWJhc2VNYW5hZ2VyJiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpCiAK
IHZvaWQgRGF0YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQ
YXRoKQogeworICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwogICAgIERhdGFi
YXNlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKIH0KIApAQCAtMjcx
LDQgKzI3MiwxMSBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6bG9nRXJyb3JNZXNzYWdlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cgogICAgIGNvbnRleHQuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpFcnJvciwg
bWVzc2FnZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIERhdGFiYXNlTWFuYWdl
cjo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQoreworICAg
IFVOVVNFRF9QQVJBTShkYXRhYmFzZVBhdGgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlTWFuYWdlci5oCmluZGV4IDJjYjRhNDRlN2NjZTgxZTk4MDEzOGZlYTdhYWFhNWM2NGUx
YTNhZmEuLjkxMzIyZTVhMjIzZDI0Yjk0NTYyNTc4NTUzMjcyMjJhYWQxNmU3YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIu
aApAQCAtNzIsNiArNzIsOCBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlcigpID0gZGVm
YXVsdDsKICAgICB+RGF0YWJhc2VNYW5hZ2VyKCkgPSBkZWxldGU7CiAKKyAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CisKICAgICBlbnVtIE9w
ZW5BdHRlbXB0IHsgRmlyc3RUcnlUb09wZW5EYXRhYmFzZSwgUmV0cnlPcGVuRGF0YWJhc2UgfTsK
ICAgICBFeGNlcHRpb25PcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VCYWNrZW5kKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhw
ZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBlc3RpbWF0
ZWRTaXplLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKTsKICAgICBFeGNlcHRpb25PcjxS
ZWY8RGF0YWJhc2U+PiB0cnlUb09wZW5EYXRhYmFzZUJhY2tlbmQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24s
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGVzdGltYXRlZFNpemUsIGJvb2wg
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIE9wZW5BdHRlbXB0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY29jb2EvRGF0YWJhc2VNYW5hZ2VyQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2NvY29hL0RhdGFiYXNlTWFu
YWdlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MmE2M2ZiNmUyYzQxODdlOWNlZWVkMDkyMGNiNzI4
YTFjMWUzOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJEYXRhYmFzZU1hbmFnZXIuaCIKKworI2ltcG9ydCAiRmlsZVN5c3Rl
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRGF0YWJhc2VNYW5hZ2VyOjpwbGF0
Zm9ybUluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCit7CisgICAgLy8gVGhl
IHBhdGggbmVlZHMgdG8gZXhpc3Qgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSBpdCB2aWEgcmVhbFBh
dGgoKS4KKyAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VQYXRoKSkKKyAg
ICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRhdGFiYXNlUGF0aCk7CisKKyAg
ICAvLyBEaXNhYmxlIHZub2RlLWd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdl
YlNRTCAocmRhcjovL3Byb2JsZW0vNDA2NzQwMzQpLiBXZSBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2
YWx1ZSBoZXJlIGFzIGl0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBzZXQgYnkgV0tUUiAvIERSVC4K
KyAgICBzZXRlbnYoIlNRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZOT0RFX0dVQVJEUyIsIEZpbGVT
eXN0ZW06OnJlYWxQYXRoKGRhdGFiYXNlUGF0aCkudXRmOCgpLmRhdGEoKSwgMCAvKiBvdmVyd3Jp
dGUgKi8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAppbmRleCA5N2ZjOWVlOWIyMTY1NDhhZmY1ZDE4ZjU3ZDFjMTQ3ZWVmYmFmYzNmLi5mMGI4ZTk0
NDhiYzBiNDU4ODU3ZWU5YzAzMjlmYTM1ZGJlMzZiNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKQEAgLTI2LDYgKzI2LDcgQEAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5jcHAKIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5t
bQogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKIE1vZHVsZXMv
d2ViYXV0aG4vY29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCitNb2R1bGVzL3dlYmRhdGFiYXNl
L2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCiAKIGFjY2Vzc2liaWxpdHkvaW9zL0FjY2Vz
c2liaWxpdHlPYmplY3RJT1MubW0KIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBjNDVhNDUwNmExMzk2YTU2YjM0MWQwODg1MTdkNTA5MWU4MTFjYzQwLi5iYzE0NmVh
ZTVhZDQwNTgzMzdlZjU2NjI2ZjFmZGExZDRjNTNiNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NTMwLDYgKzc1MzAsNyBA
QAogCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdDb2xsZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRUI2MjExQjg3ODlDQjAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjQyNDA0
NTIwRUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NkRDNkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01S
ZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzE5OSw2ICsxNzIwMCwxNCBAQAog
CQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ2NDI0
MDQ0MjBFQUYwQkQwMEIyOUZEMiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJNDY0MjQwNDUyMEVBRjBFRDAwQjI5RkQyIC8qIERhdGFiYXNl
TWFuYWdlckNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52
YXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEwNTgs
NiArMjEwNjcsNyBAQAogCQk5N0JDNjlENTE1MDVGMDU0MDAxQjc0QUMgLyogd2ViZGF0YWJhc2Ug
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQ2NDI0MDQ0
MjBFQUYwQkQwMEIyOUZEMiAvKiBjb2NvYSAqLywKIAkJCQlGRTM2RkQxMTE2Qzc4MjY0MDBGODg3
QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCAqLywKIAkJCQk5N0JDNjlEODE1MDVGMDc2MDAxQjc0
QUMgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwICovLAogCQkJCTk3QkM2OUQ5MTUwNUYwNzYw
MDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5oICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oCmluZGV4IDg1MzA2NTVjYTgwZWY5MDAyYzY1NGI2MmE2MjNjYWU3NGQzZmU5
YzEuLjgwOGY5YTRiNWU3ZGRmMzA2NWIzYWRkMjAyZjU0NzRhMzljMmVkMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBTdHJpbmcgcm9hbWlu
Z1VzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5n
ICpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoTlNTdHJpbmcgKmRpcmVjdG9yeVByZWZpeCk7CiAj
ZW5kaWYKIAorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlYWxQYXRoKGNvbnN0IFN0cmluZyYpOwor
CiBjbGFzcyBNYXBwZWRGaWxlRGF0YSB7CiBwdWJsaWM6CiAgICAgTWFwcGVkRmlsZURhdGEoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVgu
Y3BwCmluZGV4IDEyMGZmYjI5NjIzOTc5YjlhMGFmY2Q3YWVhY2VmMjFhZjc2NzE2OTEuLjZiNzMy
MDY5NjEyNTkzYThhOWFkMDY1OTMzODk4YmUwZjgyYjI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtNDQ1LDUgKzQ0NSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZpY2VJZChjb25zdCBDU3RyaW5n
JiBmc0ZpbGUpCiAgICAgcmV0dXJuIGZpbGVTdGF0LnN0X2RldjsKIH0KIAorU3RyaW5nIHJlYWxQ
YXRoKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCit7CisgICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihmaWxlUGF0aCk7CisgICAgY2hhciByZXNvbHZlZE5hbWVbUEFU
SF9NQVhdOworICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9IHJlYWxwYXRoKGZzUmVwLmRhdGEoKSwg
cmVzb2x2ZWROYW1lKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gU3RyaW5nOjpmcm9tVVRGOChyZXN1
bHQpIDogZmlsZVBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVt
V2luLmNwcAppbmRleCBlOWUzOWQ4NDJjZWQ2ZDQzNDQwMTM0MGE4NmM5NWI1NjMwNTYzZDQzLi45
NjI4N2FjNzIxMzAzYjBmYjY3OTM2Mzk3MWU4NzkwMzExNDdmNmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC01NDYsNSArNTQ2LDEwIEBA
IHN0ZDo6b3B0aW9uYWw8aW50MzJfdD4gZ2V0RmlsZURldmljZUlkKGNvbnN0IENTdHJpbmcmIGZz
RmlsZSkKICAgICByZXR1cm4gZmlsZUluZm9ybWF0aW9uLmR3Vm9sdW1lU2VyaWFsTnVtYmVyOwog
fQogCitTdHJpbmcgcmVhbFBhdGgoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKK3sKKyAgICByZXR1
cm4gZmlsZVBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA0YmU3MTMzZjhhOTA1NTk5ZmZhN2VmMjc3YmQ3ZTQyOGZmZDI0NTU5Li5iZTNkZGY4
MWQ5OWZlZjAwY2U0MmI5Yjg4ZDJiN2E1YTFiNjZhZDA0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDctMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIERpc2Fi
bGUgdm5vZGUgZ3VhcmQgcmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tUUiAvIERSVCBh
bmQgV2ViU1FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODcyNzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNjc0MDM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgdm5vZGUgZ3VhcmQg
cmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tUUiAvIERSVCBieSBzZXR0aW5nIHRoZQor
ICAgICAgICBleHBlY3RlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgdGVzdCBkcml2ZXIu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAo
RHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl9kcml2ZXIpOgorCiAyMDE4LTA3LTAyICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBBZGQgdG91Y2gg
c3VwcG9ydCB0byBXaW5kb3dWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHkKaW5kZXggZjEyOTVjYWE5MjdlMGEwNjA1YmYzYzdiNWQ1MmZjOTQ3NDNhZmVjOC4uMjk5
ODJhZGMxMzRlYjUwNjUwOWU2NDQ5Y2I4YmEwZGU5ZmFhMGZkMiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZHJpdmVyLnB5CkBAIC0zNjcsNiArMzY3LDExIEBAIGNsYXNzIERyaXZlcihvYmpl
Y3QpOgogICAgICAgICBlbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9PVCddID0gc3RyKHNl
bGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpKQogICAgICAgICBlbnZpcm9ubWVudFsnQVNBTl9P
UFRJT05TJ10gPSAiYWxsb2NhdG9yX21heV9yZXR1cm5fbnVsbD0xIgogICAgICAgICBlbnZpcm9u
bWVudFsnX19YUENfQVNBTl9PUFRJT05TJ10gPSBlbnZpcm9ubWVudFsnQVNBTl9PUFRJT05TJ10K
KworICAgICAgICAjIERpc2FibGUgdm5vZGUtZ3VhcmQgcmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hl
cyBmb3IgV0tUUiAvIERSVCAocmRhcjovL3Byb2JsZW0vNDA2NzQwMzQpLgorICAgICAgICBlbnZp
cm9ubWVudFsnU1FMSVRFX0VYRU1QVF9QQVRIX0ZST01fVk5PREVfR1VBUkRTJ10gPSBvcy5wYXRo
LnJlYWxwYXRoKGVudmlyb25tZW50WydEVU1QUkVOREVSVFJFRV9URU1QJ10pCisgICAgICAgIGVu
dmlyb25tZW50WydfX1hQQ19TUUxJVEVfRVhFTVBUX1BBVEhfRlJPTV9WTk9ERV9HVUFSRFMnXSA9
IGVudmlyb25tZW50WydTUUxJVEVfRVhFTVBUX1BBVEhfRlJPTV9WTk9ERV9HVUFSRFMnXQorCiAg
ICAgICAgIGlmIHNlbGYuX3Byb2ZpbGVyOgogICAgICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxm
Ll9wcm9maWxlci5hZGp1c3RlZF9lbnZpcm9ubWVudChlbnZpcm9ubWVudCkKICAgICAgICAgcmV0
dXJuIGVudmlyb25tZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344196</attachid>
            <date>2018-07-03 10:50:40 -0700</date>
            <delta_ts>2018-07-03 14:19:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187270-20180703105039.patch</filename>
            <type>text/plain</type>
            <size>12672</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NhMmQxYWFmZGExZDNm
NmY0ODA4OTMyZDRiMjIxNTBhY2M4MzJkNC4uNzZkNmU5MzEyYWY1MmQ3ODlhMzVjZTUwYmZhN2M1
NmRiZTAwNjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA3LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEaXNhYmxlIHZu
b2RlIGd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYW5kIFdl
YlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3
MjcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDY3NDAzND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHZub2RlIGd1YXJkIHJlbGF0
ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdlYlNRTCBieSBzZXR0aW5nIHRoZSBleHBlY3RlZAor
ICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgbm90IGFscmVhZHkgc2V0IGJ5IFdLVFIg
LyBEUlQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OnBhbHRmb3JtSW5pdGlhbGl6ZSk6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtOjpyZWFsUGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cmVhbFBhdGgpOgor
CiAyMDE4LTA3LTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMzNDYxLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IGJi
ZjQ0OTNiN2U5YTNjNTIzYTNiOTllZjFkOGE5NDA3ZmM5NTNiYjUuLmZmYjdlODZhMjg5NWZmMmRk
NTZiMDgwOTg1ZmE3ZDkxNmVlY2Y5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTc3LDYgKzc3LDcgQEAg
RGF0YWJhc2VNYW5hZ2VyJiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpCiAKIHZvaWQgRGF0
YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogewor
ICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwogICAgIERhdGFiYXNlVHJhY2tl
cjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKIH0KIApAQCAtMjcxLDQgKzI3Miwx
MSBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6bG9nRXJyb3JNZXNzYWdlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cgogICAgIGNvbnRleHQuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7
CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIERhdGFiYXNlTWFuYWdlcjo6cGxhdGZv
cm1Jbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQoreworICAgIFVOVVNFRF9Q
QVJBTShkYXRhYmFzZVBhdGgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFu
YWdlci5oCmluZGV4IDJjYjRhNDRlN2NjZTgxZTk4MDEzOGZlYTdhYWFhNWM2NGUxYTNhZmEuLjkx
MzIyZTVhMjIzZDI0Yjk0NTYyNTc4NTUzMjcyMjJhYWQxNmU3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaApAQCAtNzIs
NiArNzIsOCBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlcigpID0gZGVmYXVsdDsKICAg
ICB+RGF0YWJhc2VNYW5hZ2VyKCkgPSBkZWxldGU7CiAKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CisKICAgICBlbnVtIE9wZW5BdHRlbXB0
IHsgRmlyc3RUcnlUb09wZW5EYXRhYmFzZSwgUmV0cnlPcGVuRGF0YWJhc2UgfTsKICAgICBFeGNl
cHRpb25PcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VCYWNrZW5kKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJz
aW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBlc3RpbWF0ZWRTaXplLCBi
b29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKTsKICAgICBFeGNlcHRpb25PcjxSZWY8RGF0YWJh
c2U+PiB0cnlUb09wZW5EYXRhYmFzZUJhY2tlbmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGVzdGltYXRlZFNpemUsIGJvb2wgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsIE9wZW5BdHRlbXB0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvY29jb2EvRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29h
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA2MmE2M2ZiNmUyYzQxODdlOWNlZWVkMDkyMGNiNzI4YTFjMWUzOGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2Nv
Y29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJEYXRhYmFzZU1hbmFnZXIuaCIKKworI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRGF0YWJhc2VNYW5hZ2VyOjpwbGF0Zm9ybUluaXRp
YWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCit7CisgICAgLy8gVGhlIHBhdGggbmVl
ZHMgdG8gZXhpc3Qgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSBpdCB2aWEgcmVhbFBhdGgoKS4KKyAg
ICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VQYXRoKSkKKyAgICAgICAgRmls
ZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRhdGFiYXNlUGF0aCk7CisKKyAgICAvLyBEaXNh
YmxlIHZub2RlLWd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdlYlNRTCAocmRh
cjovL3Byb2JsZW0vNDA2NzQwMzQpLiBXZSBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBoZXJl
IGFzIGl0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBzZXQgYnkgV0tUUiAvIERSVC4KKyAgICBzZXRl
bnYoIlNRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZOT0RFX0dVQVJEUyIsIEZpbGVTeXN0ZW06OnJl
YWxQYXRoKGRhdGFiYXNlUGF0aCkudXRmOCgpLmRhdGEoKSwgMCAvKiBvdmVyd3JpdGUgKi8pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA5
N2ZjOWVlOWIyMTY1NDhhZmY1ZDE4ZjU3ZDFjMTQ3ZWVmYmFmYzNmLi5mMGI4ZTk0NDhiYzBiNDU4
ODU3ZWU5YzAzMjlmYTM1ZGJlMzZiNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI2
LDYgKzI2LDcgQEAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQogTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKIE1vZHVsZXMvd2ViYXV0aG4v
Y29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCitNb2R1bGVzL3dlYmRhdGFiYXNlL2NvY29hL0Rh
dGFiYXNlTWFuYWdlckNvY29hLm1tCiAKIGFjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlP
YmplY3RJT1MubW0KIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
ZTYxOWI0YTM1ZWVmNTNlNDRhMmZlZDMyNGI4YjUyMzI2Y2U4OWI1Li5lNjc1Y2I2MjcwNWNjNTgz
NTNiOGZkMjM4ZGQ0NmNmZDNmNWFjYTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NTMwLDYgKzc1MzAsNyBAQAogCQk0NjM1
MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8q
IFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnQ29s
bGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjQyNDA0NTIwRUFGMEVE
MDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkRD
NkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzIwMSw2ICsxNzIwMiwxNCBAQAogCQkJcGF0aCA9
IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ2NDI0MDQ0MjBFQUYw
QkQwMEIyOUZEMiAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNDY0MjQwNDUyMEVBRjBFRDAwQjI5RkQyIC8qIERhdGFiYXNlTWFuYWdlckNv
Y29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEwNjIsNiArMjEwNzEs
NyBAQAogCQk5N0JDNjlENTE1MDVGMDU0MDAxQjc0QUMgLyogd2ViZGF0YWJhc2UgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQ2NDI0MDQ0MjBFQUYwQkQw
MEIyOUZEMiAvKiBjb2NvYSAqLywKIAkJCQlGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyogQ2hh
bmdlVmVyc2lvbkRhdGEuaCAqLywKIAkJCQk5N0JDNjlEODE1MDVGMDc2MDAxQjc0QUMgLyogQ2hh
bmdlVmVyc2lvbldyYXBwZXIuY3BwICovLAogCQkJCTk3QkM2OUQ5MTUwNUYwNzYwMDFCNzRBQyAv
KiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3Rl
bS5oCmluZGV4IDg1MzA2NTVjYTgwZWY5MDAyYzY1NGI2MmE2MjNjYWU3NGQzZmU5YzEuLjgwOGY5
YTRiNWU3ZGRmMzA2NWIzYWRkMjAyZjU0NzRhMzljMmVkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlU3lzdGVtLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBTdHJpbmcgcm9hbWluZ1VzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvcnkoKTsKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nICpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoTlNTdHJpbmcgKmRpcmVjdG9yeVByZWZpeCk7CiAjZW5kaWYKIAor
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlYWxQYXRoKGNvbnN0IFN0cmluZyYpOworCiBjbGFzcyBN
YXBwZWRGaWxlRGF0YSB7CiBwdWJsaWM6CiAgICAgTWFwcGVkRmlsZURhdGEoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4
IDEyMGZmYjI5NjIzOTc5YjlhMGFmY2Q3YWVhY2VmMjFhZjc2NzE2OTEuLjZiNzMyMDY5NjEyNTkz
YThhOWFkMDY1OTMzODk4YmUwZjgyYjI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtNDQ1LDUgKzQ0NSwxMyBAQCBzdGQ6
Om9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZpY2VJZChjb25zdCBDU3RyaW5nJiBmc0ZpbGUp
CiAgICAgcmV0dXJuIGZpbGVTdGF0LnN0X2RldjsKIH0KIAorU3RyaW5nIHJlYWxQYXRoKGNvbnN0
IFN0cmluZyYgZmlsZVBhdGgpCit7CisgICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihmaWxlUGF0aCk7CisgICAgY2hhciByZXNvbHZlZE5hbWVbUEFUSF9NQVhdOwor
ICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9IHJlYWxwYXRoKGZzUmVwLmRhdGEoKSwgcmVzb2x2ZWRO
YW1lKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gU3RyaW5nOjpmcm9tVVRGOChyZXN1bHQpIDogZmls
ZVBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVt
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcApp
bmRleCBlOWUzOWQ4NDJjZWQ2ZDQzNDQwMTM0MGE4NmM5NWI1NjMwNTYzZDQzLi41NDM2YTI2YWQ1
MThmYTA4ZTgwYTI4OTZjOWQzY2FlODhiNWNkZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC01NDYsNSArNTQ2LDEwIEBAIHN0ZDo6b3B0
aW9uYWw8aW50MzJfdD4gZ2V0RmlsZURldmljZUlkKGNvbnN0IENTdHJpbmcmIGZzRmlsZSkKICAg
ICByZXR1cm4gZmlsZUluZm9ybWF0aW9uLmR3Vm9sdW1lU2VyaWFsTnVtYmVyOwogfQogCitTdHJp
bmcgcmVhbFBhdGgoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKK3sKKyAgICByZXR1cm4gZ2V0Rmlu
YWxQYXRoTmFtZShmaWxlUGF0aCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEZpbGVTeXN0ZW0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBkNmE5ZTE5ZTUxNzliMWNmMDA2ZTM4NjA2MzI3OGY2YTZmMGM5NmM1
Li5mODE5NWMyM2E1N2Y4YWQwYzk1Y2UxODlkZmUwNDBjNDY2ZjE3MmMxIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTgtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIERpc2FibGUgdm5vZGUgZ3VhcmQgcmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tU
UiAvIERSVCBhbmQgV2ViU1FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODcyNzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNjc0MDM0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgdm5v
ZGUgZ3VhcmQgcmVsYXRlZCBzaW11bGF0ZWQgY3Jhc2hlcyBmb3IgV0tUUiAvIERSVCBieSBzZXR0
aW5nIHRoZQorICAgICAgICBleHBlY3RlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgdGVz
dCBkcml2ZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5Ogor
ICAgICAgICAoRHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl9kcml2ZXIpOgorCiAyMDE4LTA3LTAy
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBh
IGxlYWsgaW4gQWN0aW9uU2hlZXRUZXN0cy5EaXNtaXNzaW5nQWN0aW9uU2hlZXRTaG91bGROb3RE
aXNtaXNzUHJlc2VudGluZ1ZpZXdDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Ry
aXZlci5weQppbmRleCBmMTI5NWNhYTkyN2UwYTA2MDViZjNjN2I1ZDUyZmM5NDc0M2FmZWM4Li4y
OTk4MmFkYzEzNGViNTA2NTA5ZTY0NDljYjhiYTBkZTlmYWEwZmQyIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTM2Nyw2ICszNjcsMTEgQEAgY2xhc3MgRHJpdmVyKG9i
amVjdCk6CiAgICAgICAgIGVudmlyb25tZW50WydMT0NBTF9SRVNPVVJDRV9ST09UJ10gPSBzdHIo
c2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkpCiAgICAgICAgIGVudmlyb25tZW50WydBU0FO
X09QVElPTlMnXSA9ICJhbGxvY2F0b3JfbWF5X3JldHVybl9udWxsPTEiCiAgICAgICAgIGVudmly
b25tZW50WydfX1hQQ19BU0FOX09QVElPTlMnXSA9IGVudmlyb25tZW50WydBU0FOX09QVElPTlMn
XQorCisgICAgICAgICMgRGlzYWJsZSB2bm9kZS1ndWFyZCByZWxhdGVkIHNpbXVsYXRlZCBjcmFz
aGVzIGZvciBXS1RSIC8gRFJUIChyZGFyOi8vcHJvYmxlbS80MDY3NDAzNCkuCisgICAgICAgIGVu
dmlyb25tZW50WydTUUxJVEVfRVhFTVBUX1BBVEhfRlJPTV9WTk9ERV9HVUFSRFMnXSA9IG9zLnBh
dGgucmVhbHBhdGgoZW52aXJvbm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAnXSkKKyAgICAgICAg
ZW52aXJvbm1lbnRbJ19fWFBDX1NRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZOT0RFX0dVQVJEUydd
ID0gZW52aXJvbm1lbnRbJ1NRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZOT0RFX0dVQVJEUyddCisK
ICAgICAgICAgaWYgc2VsZi5fcHJvZmlsZXI6CiAgICAgICAgICAgICBlbnZpcm9ubWVudCA9IHNl
bGYuX3Byb2ZpbGVyLmFkanVzdGVkX2Vudmlyb25tZW50KGVudmlyb25tZW50KQogICAgICAgICBy
ZXR1cm4gZW52aXJvbm1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344215</attachid>
            <date>2018-07-03 14:19:45 -0700</date>
            <delta_ts>2018-07-03 16:54:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187270-20180703141944.patch</filename>
            <type>text/plain</type>
            <size>12635</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM0ZDcyOWRkMzZhMmUy
MDVkMTZmZWJhNDA0MjMwMmFkZDE0MGQ1Mi4uODc0MWYzMzdkNjhiNDE2YWZkNTJiNmFjYTJlYjZl
NjZhZDY4NTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA3LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEaXNhYmxlIHZu
b2RlIGd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYW5kIFdl
YlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3
MjcwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MDY3NDAzND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHZub2RlIGd1YXJkIHJlbGF0
ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdlYlNRTCBieSBzZXR0aW5nIHRoZSBleHBlY3RlZAor
ICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgbm90IGFscmVhZHkgc2V0IGJ5IFdLVFIg
LyBEUlQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OnBhbHRmb3JtSW5pdGlhbGl6ZSk6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtOjpyZWFsUGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbTo6cmVhbFBhdGgpOgor
CiAyMDE4LTA3LTAzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gSW1wbGVtZW50IG1pbmltdW0vbWF4aW11bSBjb250ZW50IHdpZHRoIGxvZ2ljLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFn
ZXIuY3BwCmluZGV4IGJiZjQ0OTNiN2U5YTNjNTIzYTNiOTllZjFkOGE5NDA3ZmM5NTNiYjUuLmZm
YjdlODZhMjg5NWZmMmRkNTZiMDgwOTg1ZmE3ZDkxNmVlY2Y5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAg
LTc3LDYgKzc3LDcgQEAgRGF0YWJhc2VNYW5hZ2VyJiBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRv
bigpCiAKIHZvaWQgRGF0YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VQYXRoKQogeworICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwogICAg
IERhdGFiYXNlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKIH0KIApA
QCAtMjcxLDQgKzI3MiwxMSBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6bG9nRXJyb3JNZXNzYWdl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cgogICAgIGNvbnRleHQu
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpF
cnJvciwgbWVzc2FnZSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIERhdGFiYXNl
TWFuYWdlcjo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQor
eworICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZVBhdGgpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlTWFuYWdlci5oCmluZGV4IDJjYjRhNDRlN2NjZTgxZTk4MDEzOGZlYTdhYWFh
NWM2NGUxYTNhZmEuLjkxMzIyZTVhMjIzZDI0Yjk0NTYyNTc4NTUzMjcyMjJhYWQxNmU3YWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1h
bmFnZXIuaApAQCAtNzIsNiArNzIsOCBAQCBwcml2YXRlOgogICAgIERhdGFiYXNlTWFuYWdlcigp
ID0gZGVmYXVsdDsKICAgICB+RGF0YWJhc2VNYW5hZ2VyKCkgPSBkZWxldGU7CiAKKyAgICB2b2lk
IHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CisKICAgICBl
bnVtIE9wZW5BdHRlbXB0IHsgRmlyc3RUcnlUb09wZW5EYXRhYmFzZSwgUmV0cnlPcGVuRGF0YWJh
c2UgfTsKICAgICBFeGNlcHRpb25PcjxSZWY8RGF0YWJhc2U+PiBvcGVuRGF0YWJhc2VCYWNrZW5k
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBl
c3RpbWF0ZWRTaXplLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKTsKICAgICBFeGNlcHRp
b25PcjxSZWY8RGF0YWJhc2U+PiB0cnlUb09wZW5EYXRhYmFzZUJhY2tlbmQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGVzdGltYXRlZFNpemUs
IGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIE9wZW5BdHRlbXB0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvY29jb2EvRGF0YWJhc2VNYW5hZ2Vy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL2NvY29hL0RhdGFi
YXNlTWFuYWdlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjZmU5ZmIwNjMyNjkxODFkNDRmMTNjMzgz
NjgyNTMzZDRlNGRmYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJEYXRhYmFzZU1hbmFnZXIuaCIKKworI2ltcG9ydCAiRmls
ZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRGF0YWJhc2VNYW5hZ2Vy
OjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCit7CisgICAg
Ly8gVGhlIHBhdGggbmVlZHMgdG8gZXhpc3Qgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSBpdCB2aWEg
cmVhbFBhdGgoKS4KKyAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VQYXRo
KSkKKyAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRhdGFiYXNlUGF0aCk7
CisKKyAgICAvLyBEaXNhYmxlIHZub2RlLWd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMg
Zm9yIFdlYlNRTCAocmRhcjovL3Byb2JsZW0vNDA2NzQwMzQpLiBXZSBkbyBub3Qgb3ZlcndyaXRl
IHRoZSB2YWx1ZSBoZXJlIGFzIGl0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBzZXQgYnkgV0tUUiAv
IERSVC4KKyAgICBpbnQgb3ZlcndyaXRlID0gMDsKKyAgICBzZXRlbnYoIlNRTElURV9FWEVNUFRf
UEFUSF9GUk9NX1ZOT0RFX0dVQVJEUyIsIEZpbGVTeXN0ZW06OnJlYWxQYXRoKGRhdGFiYXNlUGF0
aCkudXRmOCgpLmRhdGEoKSwgb3ZlcndyaXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTdmYzllZTliMjE2NTQ4YWZmNWQxOGY1N2Qx
YzE0N2VlZmJhZmMzZi4uZjBiOGU5NDQ4YmMwYjQ1ODg1N2VlOWMwMzI5ZmEzNWRiZTM2YjQzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNiw2ICsyNiw3IEBAIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2NvY29hL0xvY2FsQXV0aGVudGljYXRvci5t
bQorTW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbQogCiBh
Y2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCiBhY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWU2MTliNGEzNWVlZjUzZTQ0YTJmZWQzMjRi
OGI1MjMyNmNlODliNS4uZTY3NWNiNjI3MDVjYzU4MzUzYjhmZDIzOGRkNDZjZmQzZjVhY2EyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzUzMCw2ICs3NTMwLDcgQEAKIAkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8qIFdp
bmRvd1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRv
d1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRUI2MjAxQjg3ODlD
QjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGFnQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhZ0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDY0MjQwNDUyMEVBRjBFRDAwQjI5RkQyIC8qIERhdGFiYXNlTWFuYWdl
ckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAv
KiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZEQzZBQjFFREUwMjFEMDA3NDYyMjQgLyogSlNE
T01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RP
TVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2RUQ4RDIxRURF
MDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTcyMDEsNiArMTcyMDIsMTQgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk0NjQyNDA0NDIwRUFGMEJEMDBCMjlGRDIgLyogY29jb2EgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ2NDI0MDQ1MjBFQUYw
RUQwMEIyOUZEMiAvKiBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRo
ID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0OTQ4NEZBRTEw
MkNGMDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTIxMDYyLDYgKzIxMDcxLDcgQEAKIAkJOTdCQzY5RDUxNTA1RjA1NDAw
MUI3NEFDIC8qIHdlYmRhdGFiYXNlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk0NjQyNDA0NDIwRUFGMEJEMDBCMjlGRDIgLyogY29jb2EgKi8sCiAJCQkJ
RkUzNkZEMTExNkM3ODI2NDAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggKi8sCiAJCQkJ
OTdCQzY5RDgxNTA1RjA3NjAwMUI3NEFDIC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCAqLywK
IAkJCQk5N0JDNjlEOTE1MDVGMDc2MDAxQjc0QUMgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCA4NTMwNjU1Y2E4MGVmOTAw
MmM2NTRiNjJhNjIzY2FlNzRkM2ZlOWMxLi44MDhmOWE0YjVlN2RkZjMwNjViM2FkZDIwMmY1NDc0
YTM5YzJlZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xODYsNiAr
MTg2LDggQEAgU3RyaW5nIHJvYW1pbmdVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCk7CiBX
RUJDT1JFX0VYUE9SVCBOU1N0cmluZyAqY3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KE5TU3RyaW5n
ICpkaXJlY3RvcnlQcmVmaXgpOwogI2VuZGlmCiAKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyByZWFs
UGF0aChjb25zdCBTdHJpbmcmKTsKKwogY2xhc3MgTWFwcGVkRmlsZURhdGEgewogcHVibGljOgog
ICAgIE1hcHBlZEZpbGVEYXRhKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCAxMjBmZmIyOTYyMzk3OWI5YTBhZmNkN2Fl
YWNlZjIxYWY3NjcxNjkxLi42YjczMjA2OTYxMjU5M2E4YTlhZDA2NTkzMzg5OGJlMGY4MmIyOWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9T
SVguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJ
WC5jcHAKQEAgLTQ0NSw1ICs0NDUsMTMgQEAgc3RkOjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxl
RGV2aWNlSWQoY29uc3QgQ1N0cmluZyYgZnNGaWxlKQogICAgIHJldHVybiBmaWxlU3RhdC5zdF9k
ZXY7CiB9CiAKK1N0cmluZyByZWFsUGF0aChjb25zdCBTdHJpbmcmIGZpbGVQYXRoKQoreworICAg
IENTdHJpbmcgZnNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZVBhdGgpOworICAg
IGNoYXIgcmVzb2x2ZWROYW1lW1BBVEhfTUFYXTsKKyAgICBjb25zdCBjaGFyKiByZXN1bHQgPSBy
ZWFscGF0aChmc1JlcC5kYXRhKCksIHJlc29sdmVkTmFtZSk7CisgICAgcmV0dXJuIHJlc3VsdCA/
IFN0cmluZzo6ZnJvbVVURjgocmVzdWx0KSA6IGZpbGVQYXRoOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBGaWxlU3lzdGVtCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggZTllMzlkODQyY2VkNmQ0MzQ0MDEz
NDBhODZjOTViNTYzMDU2M2Q0My4uNTQzNmEyNmFkNTE4ZmEwOGU4MGEyODk2YzlkM2NhZTg4YjVj
ZGVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNw
cApAQCAtNTQ2LDUgKzU0NiwxMCBAQCBzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZp
Y2VJZChjb25zdCBDU3RyaW5nJiBmc0ZpbGUpCiAgICAgcmV0dXJuIGZpbGVJbmZvcm1hdGlvbi5k
d1ZvbHVtZVNlcmlhbE51bWJlcjsKIH0KIAorU3RyaW5nIHJlYWxQYXRoKGNvbnN0IFN0cmluZyYg
ZmlsZVBhdGgpCit7CisgICAgcmV0dXJuIGdldEZpbmFsUGF0aE5hbWUoZmlsZVBhdGgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBGaWxlU3lzdGVtCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjg2ZDRlOTFi
NzNkMDVlYmYzYWI2MjI4MTRjZjQ2OTE5NTAwN2ExZi4uMDUzNzZmYTMyM2E5N2IxYWRkYjg3ZWI4
OTgwNjRlNjJhMzY0ZjJmYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA3LTAzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEaXNhYmxlIHZub2RlIGd1YXJkIHJl
bGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYW5kIFdlYlNRTAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MjcwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80MDY3NDAzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHZub2RlIGd1YXJkIHJlbGF0ZWQgc2ltdWxhdGVk
IGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgYnkgc2V0dGluZyB0aGUKKyAgICAgICAgZXhwZWN0ZWQg
ZW52aXJvbm1lbnQgdmFyaWFibGUgaW4gdGhlIHRlc3QgZHJpdmVyLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZlci5fc2V0dXBfZW52
aXJvbl9mb3JfZHJpdmVyKToKKwogMjAxOC0wNy0wMyAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG9sZCBKU0NUZXN0c0ZhY3RvcnkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CmluZGV4IGYxMjk1Y2FhOTI3ZTBhMDYwNWJmM2M3
YjVkNTJmYzk0NzQzYWZlYzguLjI5OTgyYWRjMTM0ZWI1MDY1MDllNjQ0OWNiOGJhMGRlOWZhYTBm
ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtMzY3LDYgKzM2Nywx
MSBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgZW52aXJvbm1lbnRbJ0xPQ0FMX1JF
U09VUkNFX1JPT1QnXSA9IHN0cihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSkKICAgICAg
ICAgZW52aXJvbm1lbnRbJ0FTQU5fT1BUSU9OUyddID0gImFsbG9jYXRvcl9tYXlfcmV0dXJuX251
bGw9MSIKICAgICAgICAgZW52aXJvbm1lbnRbJ19fWFBDX0FTQU5fT1BUSU9OUyddID0gZW52aXJv
bm1lbnRbJ0FTQU5fT1BUSU9OUyddCisKKyAgICAgICAgIyBEaXNhYmxlIHZub2RlLWd1YXJkIHJl
bGF0ZWQgc2ltdWxhdGVkIGNyYXNoZXMgZm9yIFdLVFIgLyBEUlQgKHJkYXI6Ly9wcm9ibGVtLzQw
Njc0MDM0KS4KKyAgICAgICAgZW52aXJvbm1lbnRbJ1NRTElURV9FWEVNUFRfUEFUSF9GUk9NX1ZO
T0RFX0dVQVJEUyddID0gb3MucGF0aC5yZWFscGF0aChlbnZpcm9ubWVudFsnRFVNUFJFTkRFUlRS
RUVfVEVNUCddKQorICAgICAgICBlbnZpcm9ubWVudFsnX19YUENfU1FMSVRFX0VYRU1QVF9QQVRI
X0ZST01fVk5PREVfR1VBUkRTJ10gPSBlbnZpcm9ubWVudFsnU1FMSVRFX0VYRU1QVF9QQVRIX0ZS
T01fVk5PREVfR1VBUkRTJ10KKwogICAgICAgICBpZiBzZWxmLl9wcm9maWxlcjoKICAgICAgICAg
ICAgIGVudmlyb25tZW50ID0gc2VsZi5fcHJvZmlsZXIuYWRqdXN0ZWRfZW52aXJvbm1lbnQoZW52
aXJvbm1lbnQpCiAgICAgICAgIHJldHVybiBlbnZpcm9ubWVudAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>