<?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>193700</bug_id>
          
          <creation_ts>2019-01-22 17:55:00 -0800</creation_ts>
          <short_desc>Stop using NetworkProcess::singleton</short_desc>
          <delta_ts>2019-01-23 16:31:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497133</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 17:55:00 -0800</bug_when>
    <thetext>Stop using NetworkProcess::singleton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497135</commentid>
    <comment_count>1</comment_count>
      <attachid>359823</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 17:55:35 -0800</bug_when>
    <thetext>Created attachment 359823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497146</commentid>
    <comment_count>2</comment_count>
      <attachid>359829</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 18:08:45 -0800</bug_when>
    <thetext>Created attachment 359829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497160</commentid>
    <comment_count>3</comment_count>
      <attachid>359829</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-22 19:17:33 -0800</bug_when>
    <thetext>Comment on attachment 359829
Patch

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        Stop using NetworkProcess::singleton

Yay!

&gt; Source/WebKit/NetworkProcess/win/NetworkProcessMainWin.cpp:38
&gt; +template&lt;&gt;
&gt; +void initializeChildProcess&lt;WebKit::NetworkProcess&gt;(ChildProcessInitializationParameters&amp;&amp; parameters)
&gt; +{
&gt; +    static NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; networkProcess(adoptRef(*new NetworkProcess(WTFMove(parameters))));
&gt; +}

I don&apos;t think this will ever be called, since the only caller is XPCServiceInitializer.  You probably need to update ChildProcessMain.h as well. (This is also true for the Soup case).

&gt; Source/WebKit/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:128
&gt; -    XPCServiceType::singleton().initialize(parameters);
&gt; +    initializeChildProcess&lt;XPCServiceType&gt;(WTFMove(parameters));

We use the delegate pattern for similar-ish (e.g. things that might need to be customized per service type) things above. Can this be modified to also use the delegate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497165</commentid>
    <comment_count>4</comment_count>
      <attachid>359829</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 19:40:02 -0800</bug_when>
    <thetext>Comment on attachment 359829
Patch

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

&gt;&gt; Source/WebKit/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:128
&gt;&gt; +    initializeChildProcess&lt;XPCServiceType&gt;(WTFMove(parameters));
&gt; 
&gt; We use the delegate pattern for similar-ish (e.g. things that might need to be customized per service type) things above. Can this be modified to also use the delegate?

I&apos;ll do this in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497167</commentid>
    <comment_count>5</comment_count>
      <attachid>359838</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 19:40:12 -0800</bug_when>
    <thetext>Created attachment 359838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497193</commentid>
    <comment_count>6</comment_count>
      <attachid>359838</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-22 20:33:08 -0800</bug_when>
    <thetext>Comment on attachment 359838
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        This replaces it with a NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; and paves the way for more interesting things.

Yes, like instantiating a NetworkProcess multiple times... Is this intended? What new world are we living in? :/

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:121
&gt; +    : m_downloadManager(*this)

Uniform initializer syntax?

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:424
&gt;      CacheModel m_cacheModel;

Does initialize() set this to CacheModel::DocumentView? If no, where is this being done?

&gt; Source/WebKit/NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp:77
&gt; +        auto* customProtocolManager = lastCreatedNetworkProcess()-&gt;supplement&lt;LegacyCustomProtocolManager&gt;();

Ah.. So, it sounds like you can have multiple Network Processes. Wow. At the same time?

&gt; Source/WebKit/NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:46
&gt; +    static NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; networkProcess(adoptRef(*new NetworkProcess(WTFMove(parameters))));

I know you are just copying the old style. What is the point of all this ref-business? Static pointer is not enough? Must never be a need to access this static-allocated network process because you can’t.

&gt; Source/WebKit/Shared/unix/ChildProcessMain.h:39
&gt; +    ChildProcessInitializationParameters&amp;&amp; initializationParameters() { return WTFMove(m_parameters); }

std::exchange()? Or does ChildProcessInitializationParameters’s move constructor put us in a good state? Or how do prevent someone from calling calling this twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497194</commentid>
    <comment_count>7</comment_count>
      <attachid>359838</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-22 20:34:06 -0800</bug_when>
    <thetext>Comment on attachment 359838
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:73
&gt; +    XPCServiceType::singleton().initialize(parameters);

Where’s the WTFMove()?

&gt; Source/WebKit/Shared/unix/ChildProcessMain.h:48
&gt; +    ChildProcessType::singleton().initialize(parameters);

Where’s the WTFMove()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497204</commentid>
    <comment_count>8</comment_count>
      <attachid>359838</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-22 21:02:50 -0800</bug_when>
    <thetext>Comment on attachment 359838
Patch

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

&gt;&gt; Source/WebKit/Shared/unix/ChildProcessMain.h:39
&gt;&gt; +    ChildProcessInitializationParameters&amp;&amp; initializationParameters() { return WTFMove(m_parameters); }
&gt; 
&gt; std::exchange()? Or does ChildProcessInitializationParameters’s move constructor put us in a good state? Or how do prevent someone from calling calling this twice?

Traditionally, we call something like this, takeInitializationParameters() to indicate that it is destructive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497206</commentid>
    <comment_count>9</comment_count>
      <attachid>359838</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-22 21:04:57 -0800</bug_when>
    <thetext>Comment on attachment 359838
Patch

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

&gt; Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp:39
&gt; +    static NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; networkProcess(adoptRef(*new NetworkProcess(WTFMove(parameters))));

If this is never passed to anyone, I don&apos;t see much reason in making this a NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt;. Can probably just make it a NeverDestroyed&lt;NetworkProcess&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497210</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 21:16:46 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; Comment on attachment 359838 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359838&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:8
&gt; &gt; +        This replaces it with a NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; and paves the way for more interesting things.
&gt; 
&gt; Yes, like instantiating a NetworkProcess multiple times... Is this intended?
&gt; What new world are we living in? :/
This is the exact intent of future patches.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:121
&gt; &gt; +    : m_downloadManager(*this)
&gt; 
&gt; Uniform initializer syntax?
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.h:424
&gt; &gt;      CacheModel m_cacheModel;
&gt; 
&gt; Does initialize() set this to CacheModel::DocumentView? If no, where is this
&gt; being done?
This is already being done by an initializer list in the header.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp:77
&gt; &gt; +        auto* customProtocolManager = lastCreatedNetworkProcess()-&gt;supplement&lt;LegacyCustomProtocolManager&gt;();
&gt; 
&gt; Ah.. So, it sounds like you can have multiple Network Processes. Wow. At the
&gt; same time?
At the same time.  Organized by connection.  It&apos;s going to be awesome.  Tell your friends.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:46
&gt; &gt; +    static NeverDestroyed&lt;Ref&lt;NetworkProcess&gt;&gt; networkProcess(adoptRef(*new NetworkProcess(WTFMove(parameters))));
&gt; 
&gt; I know you are just copying the old style. What is the point of all this
&gt; ref-business? Static pointer is not enough? Must never be a need to access
&gt; this static-allocated network process because you can’t.
Other things already reference it.  They are created in the initialization.
&gt; 
&gt; &gt; Source/WebKit/Shared/unix/ChildProcessMain.h:39
&gt; &gt; +    ChildProcessInitializationParameters&amp;&amp; initializationParameters() { return WTFMove(m_parameters); }
&gt; 
&gt; std::exchange()? Or does ChildProcessInitializationParameters’s move
&gt; constructor put us in a good state? Or how do prevent someone from calling
&gt; calling this twice?
I wasn&apos;t sure everything in ChildProcessInitializationParameters can or should always be able to be default initialized.  I don&apos;t like the design of Unix&apos;s ChildProcessMain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497212</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 21:22:26 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; std::exchange()? Or does ChildProcessInitializationParameters’s move
&gt; constructor put us in a good state? Or how do prevent someone from calling
&gt; calling this twice?
I think WTFMove is fine here because it is the last use of that object, so leaving it in an undefined state is fine.  I&apos;ll rename it on Sam&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497215</commentid>
    <comment_count>12</comment_count>
      <attachid>359838</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 21:23:39 -0800</bug_when>
    <thetext>Comment on attachment 359838
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:424
&gt;&gt;      CacheModel m_cacheModel;
&gt; 
&gt; Does initialize() set this to CacheModel::DocumentView? If no, where is this being done?

Oops, I was looking at the WebProcess.  I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497216</commentid>
    <comment_count>13</comment_count>
      <attachid>359847</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 21:27:48 -0800</bug_when>
    <thetext>Created attachment 359847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497217</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-22 21:28:22 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; &gt; +    : m_downloadManager(*this)
&gt; Uniform initializer syntax?
Stylebot doesn&apos;t like this, but I did it anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497218</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-22 21:29:48 -0800</bug_when>
    <thetext>Attachment 359847 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:128:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497573</commentid>
    <comment_count>16</comment_count>
      <attachid>359944</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-23 14:36:22 -0800</bug_when>
    <thetext>Created attachment 359944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497646</commentid>
    <comment_count>17</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-23 16:30:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/r240366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497650</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-23 16:31:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/47499170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359823</attachid>
            <date>2019-01-22 17:55:35 -0800</date>
            <delta_ts>2019-01-22 18:08:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193700-20190122175534.patch</filename>
            <type>text/plain</type>
            <size>10004</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAzMTQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTIyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM3MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBOZXZlckRlc3Ryb3llZDxS
ZWY8TmV0d29ya1Byb2Nlc3M+PiBhbmQgcGF2ZXMgdGhlIHdheSBmb3IgbW9yZSBpbnRlcmVzdGlu
ZyB0aGluZ3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291
cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2lu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzPik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2ViS2l0OjpOZXR3b3JrUHJvY2Vzcz4pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dpbi9OZXR3b3JrUHJvY2Vzc01haW5XaW4uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hpbGRQcm9jZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M+KToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hp
bGRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKwog
MjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBhbiBpbnRlcm5hbCBidWlsZCBmYWlsdXJlIGFmdGVyIHIyNDAyOTIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CShyZXZpc2lvbiAyNDAyOTUpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDI4ICsxMTcsNyBAQCBzdGF0aWMg
dm9pZCBjYWxsRXhpdFNvb24oSVBDOjpDb25uZWN0aW9uCiAgICAgfSk7CiB9CiAKLU5ldHdvcmtQ
cm9jZXNzJiBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UmVmPE5ldHdvcmtQcm9jZXNzPj4gbmV0d29ya1Byb2Nlc3MoYWRvcHRSZWYoKm5l
dyBOZXR3b3JrUHJvY2VzcykpOwotICAgIHJldHVybiBuZXR3b3JrUHJvY2Vzcy5nZXQoKTsKLX0K
LQotTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKCkKLSAgICA6IG1faGFzU2V0Q2FjaGVN
b2RlbChmYWxzZSkKLSAgICAsIG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsOjpEb2N1bWVudFZpZXdl
cikKLSAgICAsIG1fZGlza0NhY2hlSXNEaXNhYmxlZEZvclRlc3RpbmcoZmFsc2UpCi0gICAgLCBt
X2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHRydWUpCi0gICAgLCBtX2Rvd25s
b2FkTWFuYWdlcigqdGhpcykKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1fY2xlYXJDYWNo
ZURpc3BhdGNoR3JvdXAoMCkKLSNlbmRpZgotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgLCBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCp0aGlzKQotI2VuZGlmCi0g
ICAgLCBtX3N0b3JhZ2VUYXNrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZVRhc2siKSkKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAsIG1f
aWRiUGVyT3JpZ2luUXVvdGEoSURCU2VydmVyOjpkZWZhdWx0UGVyT3JpZ2luUXVvdGEpCi0jZW5k
aWYKK05ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewogICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CiAKQEAgLTE2Niw2ICsxNDUsOCBAQCBOZXR3b3Jr
UHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoKQogICAgICAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3ND
b25uZWN0aW9uIDogd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zKQogICAgICAgICAgICAgd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNldE9uTGluZVN0YXRlKGlzT25MaW5lKTsKICAgICB9KTsKKworICAgIGlu
aXRpYWxpemUoV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0
d29ya1Byb2Nlc3MoKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMjQwMjkyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsOCArMTA2LDgg
QEAgY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZQogewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE5ldHdvcmtQcm9jZXNzKTsKIHB1YmxpYzoKKyAgICBOZXR3b3JrUHJv
Y2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdv
cmtQcm9jZXNzKCk7Ci0gICAgc3RhdGljIE5ldHdvcmtQcm9jZXNzJiBzaW5nbGV0b24oKTsKICAg
ICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6
Ok5ldHdvcms7CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTI4Niw4ICsyODYsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRf
dCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUHJv
Y2VzcygpOwotCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgdm9pZCB0ZXJtaW5h
dGUoKSBvdmVycmlkZTsKQEAgLTQyMiwxMyArNDIwLDEzIEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25zOwogCiAgICAgU3RyaW5nIG1fZGlza0NhY2hlRGlyZWN0b3J5OwotICAgIGJvb2wgbV9o
YXNTZXRDYWNoZU1vZGVsOworICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsK
ICAgICBDYWNoZU1vZGVsIG1fY2FjaGVNb2RlbDsKICAgICBib29sIG1fc3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9kaXNrQ2FjaGVJc0Rpc2FibGVk
Rm9yVGVzdGluZzsKLSAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRp
b247CisgICAgYm9vbCBtX2Rpc2tDYWNoZUlzRGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07
CiAgICAgU3RyaW5nIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBEb3dubG9hZE1h
bmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7CisgICAgRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRN
YW5hZ2VyIHsgKnRoaXMgfTsKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxDYWNo
ZVN0b3JhZ2U6OkVuZ2luZT4+IG1fY2FjaGVFbmdpbmVzOwogCkBAIC00NTAsMjEgKzQ0OCwyMSBA
QCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2UgdG8gYmUgYWJsZSB0byBkbyB0aGlz
IHdpdGhvdXQgdGhlICNpZmRlZiwgYnV0IFdvcmtRdWV1ZSArIEJpbmFyeVNlbWFwaG9yZSBpc24n
dCBnb29kIGVub3VnaCBzaW5jZQogICAgIC8vIG11bHRpcGxlIHJlcXVlc3RzIHRvIGNsZWFyIHRo
ZSBjYWNoZSBjYW4gY29tZSBpbiBiZWZvcmUgcHJldmlvdXMgcmVxdWVzdHMgY29tcGxldGUsIGFu
ZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtLgogICAgIC8vIEluIHRoZSBmdXR1cmUg
dXNpbmcgV29ya1F1ZXVlIGFuZCBhIGNvdW50aW5nIHNlbWFwaG9yZSB3b3VsZCB3b3JrLCBhcyB3
b3VsZCBXb3JrUXVldWUgc3VwcG9ydGluZyB0aGUgbGliZGlzcGF0Y2ggY29uY2VwdCBvZiAid29y
ayBncm91cHMiLgotICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9jbGVhckNhY2hlRGlzcGF0Y2hHcm91
cDsKKyAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAgeyBudWxs
cHRyIH07CiAKICAgICBib29sIG1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lz
dGVtQ2hhbmdlIHsgZmFsc2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBtX25ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyOworICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fbmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgeyAqdGhpcyB9OwogI2VuZGlmCiAKLSAgICBSZWY8
V29ya1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWU7CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdG9y
YWdlVGFza1F1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZVRhc2siKSB9OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDxQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7CiAgICAgSGFzaE1hcDxQ
QUw6OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9p
ZGJTZXJ2ZXJzOwotICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVvdGE7CisgICAgdWludDY0
X3QgbV9pZGJQZXJPcmlnaW5RdW90YSB7IFdlYkNvcmU6OklEQlNlcnZlcjo6ZGVmYXVsdFBlck9y
aWdpblF1b3RhIH07CiAjZW5kaWYKIAogICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9zdG9y
YWdlVGFza3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3Rv
Y29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHJldmlzaW9uIDI0MDI5MikKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UmVxdWVzdChHUmVmUHRyPEdUYXNrPiYmIHRhc2sp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBXZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMqIHJlcXVl
c3QgPSBXRUJLSVRfU09VUF9SRVFVRVNUX0dFTkVSSUMoZ190YXNrX2dldF9zb3VyY2Vfb2JqZWN0
KHRhc2suZ2V0KCkpKTsKLSAgICAgICAgYXV0byogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyID0gTmV0
d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyPigpOworICAgICAgICBhdXRvKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIgPSBsYXN0Q3Jl
YXRlZE5ldHdvcmtQcm9jZXNzKCktPnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyPigpOwogICAgICAgICBpZiAoIWN1c3RvbVByb3RvY29sTWFuYWdlcikKICAgICAgICAgICAg
IHJldHVybjsKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
TmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1Nl
cnZpY2VFbnRyeVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQCBwdWJs
aWM6CiAgICAgfQogfTsKIAordGVtcGxhdGU8Pgordm9pZCBpbml0aWFsaXplQ2hpbGRQcm9jZXNz
PFdlYktpdDo6TmV0d29ya1Byb2Nlc3M+KENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxOZXR3
b3JrUHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3Mo
V1RGTW92ZShwYXJhbWV0ZXJzKSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCShyZXZp
c2lvbiAyNDAyOTIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NNYWluU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCit0ZW1wbGF0ZTw+Cit2b2lkIGluaXRpYWxpemVDaGlsZFBy
b2Nlc3M8V2ViS2l0OjpOZXR3b3JrUHJvY2Vzcz4oQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVm
PE5ldHdvcmtQcm9jZXNzPj4gbmV0d29ya1Byb2Nlc3MoYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJv
Y2VzcyhXVEZNb3ZlKHBhcmFtZXRlcnMpKSkpOworfQorCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc01h
aW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CiBwdWJsaWM6CiAgICAgdm9p
ZCBwbGF0Zm9ybUZpbmFsaXplKCkgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2luL05ldHdvcmtQcm9jZXNzTWFpbldpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcAko
cmV2aXNpb24gMjQwMjkxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0
d29ya1Byb2Nlc3NNYWluV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxk
UHJvY2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZWY8TmV0d29ya1Byb2Nlc3M+PiBuZXR3b3JrUHJvY2VzcyhhZG9wdFJlZigqbmV3IE5ldHdvcmtQ
cm9jZXNzKFdURk1vdmUocGFyYW1ldGVycykpKSk7Cit9CisKIGludCBOZXR3b3JrUHJvY2Vzc01h
aW5XaW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIHJldHVybiBDaGlsZFByb2Nlc3NN
YWluPE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluQmFzZT4oYXJnYywgYXJndik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQ
b2ludC5oCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTY3LDYgKzY3LDEyIEBAIHByb3RlY3RlZDoKICAgICB4cGNfb2JqZWN0X3Qg
bV9pbml0aWFsaXplck1lc3NhZ2U7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBYUENTZXJ2aWNl
VHlwZT4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5n
bGV0b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBY
UENTZXJ2aWNlVHlwZSwgdHlwZW5hbWUgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGVUeXBl
Pgogdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25f
dD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVj
dF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQogewpAQCAtMTE5LDcgKzEyNSw3IEBAIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9
IFhQQ1NlcnZpY2VUeXBlOjpwcm9jZXNzVHlwZTsKIAotICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5n
bGV0b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworICAgIGluaXRpYWxpemVDaGlsZFByb2Nl
c3M8WFBDU2VydmljZVR5cGU+KFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCiBpbnQgWFBDU2Vy
dmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359829</attachid>
            <date>2019-01-22 18:08:45 -0800</date>
            <delta_ts>2019-01-22 19:40:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193700-20190122180844.patch</filename>
            <type>text/plain</type>
            <size>9830</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAzMTQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTIyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM3MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBOZXZlckRlc3Ryb3llZDxS
ZWY8TmV0d29ya1Byb2Nlc3M+PiBhbmQgcGF2ZXMgdGhlIHdheSBmb3IgbW9yZSBpbnRlcmVzdGlu
ZyB0aGluZ3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291
cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2lu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzPik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2ViS2l0OjpOZXR3b3JrUHJvY2Vzcz4pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dpbi9OZXR3b3JrUHJvY2Vzc01haW5XaW4uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hpbGRQcm9jZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M+KToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hp
bGRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKwog
MjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBhbiBpbnRlcm5hbCBidWlsZCBmYWlsdXJlIGFmdGVyIHIyNDAyOTIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CShyZXZpc2lvbiAyNDAyOTUpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDI4ICsxMTcsMTEgQEAgc3RhdGlj
IHZvaWQgY2FsbEV4aXRTb29uKElQQzo6Q29ubmVjdGlvbgogICAgIH0pOwogfQogCi1OZXR3b3Jr
UHJvY2VzcyYgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlZjxOZXR3b3JrUHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpu
ZXcgTmV0d29ya1Byb2Nlc3MpKTsKLSAgICByZXR1cm4gbmV0d29ya1Byb2Nlc3MuZ2V0KCk7Ci19
Ci0KLU5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCi0gICAgOiBtX2hhc1NldENhY2hl
TW9kZWwoZmFsc2UpCi0gICAgLCBtX2NhY2hlTW9kZWwoQ2FjaGVNb2RlbDo6RG9jdW1lbnRWaWV3
ZXIpCi0gICAgLCBtX2Rpc2tDYWNoZUlzRGlzYWJsZWRGb3JUZXN0aW5nKGZhbHNlKQotICAgICwg
bV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbih0cnVlKQotICAgICwgbV9kb3du
bG9hZE1hbmFnZXIoKnRoaXMpCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLCBtX2NsZWFyQ2Fj
aGVEaXNwYXRjaEdyb3VwKDApCi0jZW5kaWYKK05ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vz
cyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorICAg
IDogbV9kb3dubG9hZE1hbmFnZXIoKnRoaXMpCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKICAgICAsIG1fbmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKnRoaXMpCiAjZW5kaWYK
LSAgICAsIG1fc3RvcmFnZVRhc2tRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlVGFzayIpKQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgICwg
bV9pZGJQZXJPcmlnaW5RdW90YShJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSkKLSNl
bmRpZgogewogICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXpl
KCk7CiAKQEAgLTE2Niw2ICsxNDksOCBAQCBOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3Mo
KQogICAgICAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3NDb25uZWN0aW9uIDogd2ViUHJvY2Vzc0Nv
bm5lY3Rpb25zKQogICAgICAgICAgICAgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE9uTGluZVN0
YXRlKGlzT25MaW5lKTsKICAgICB9KTsKKworICAgIGluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0
ZXJzKSk7CiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24g
MjQwMjkyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsOCArMTA2LDggQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3Mg
OiBwdWJsaWMgQ2hpbGRQcm9jZQogewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldHdvcmtQ
cm9jZXNzKTsKIHB1YmxpYzoKKyAgICBOZXR3b3JrUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7Ci0gICAgc3RhdGlj
IE5ldHdvcmtQcm9jZXNzJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgY29uc3RleHByIFByb2Nl
c3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6Ok5ldHdvcms7CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KQEAgLTI4Niw4ICsyODYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1
ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qg
c3BhY2VSZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4p
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUHJvY2VzcygpOwotCiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKSBvdmVycmlkZTsKQEAgLTQyMiwx
MSArNDIwLDExIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCiAgICAgU3RyaW5nIG1f
ZGlza0NhY2hlRGlyZWN0b3J5OwotICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOworICAgIGJv
b2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKICAgICBDYWNoZU1vZGVsIG1fY2FjaGVN
b2RlbDsKICAgICBib29sIG1fc3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9kaXNrQ2FjaGVJc0Rpc2FibGVkRm9yVGVzdGluZzsKLSAgICBib29sIG1f
Y2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CisgICAgYm9vbCBtX2Rpc2tDYWNo
ZUlzRGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FuSGFuZGxlSFRU
UFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgU3RyaW5nIG1fdWlQcm9jZXNz
QnVuZGxlSWRlbnRpZmllcjsKICAgICBEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7
CiAKQEAgLTQ1MCw3ICs0NDgsNyBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2Ug
dG8gYmUgYWJsZSB0byBkbyB0aGlzIHdpdGhvdXQgdGhlICNpZmRlZiwgYnV0IFdvcmtRdWV1ZSAr
IEJpbmFyeVNlbWFwaG9yZSBpc24ndCBnb29kIGVub3VnaCBzaW5jZQogICAgIC8vIG11bHRpcGxl
IHJlcXVlc3RzIHRvIGNsZWFyIHRoZSBjYWNoZSBjYW4gY29tZSBpbiBiZWZvcmUgcHJldmlvdXMg
cmVxdWVzdHMgY29tcGxldGUsIGFuZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtLgog
ICAgIC8vIEluIHRoZSBmdXR1cmUgdXNpbmcgV29ya1F1ZXVlIGFuZCBhIGNvdW50aW5nIHNlbWFw
aG9yZSB3b3VsZCB3b3JrLCBhcyB3b3VsZCBXb3JrUXVldWUgc3VwcG9ydGluZyB0aGUgbGliZGlz
cGF0Y2ggY29uY2VwdCBvZiAid29yayBncm91cHMiLgotICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9j
bGVhckNhY2hlRGlzcGF0Y2hHcm91cDsKKyAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJDYWNo
ZURpc3BhdGNoR3JvdXAgeyBudWxscHRyIH07CiAKICAgICBib29sIG1fc3VwcHJlc3Nlc0Nvbm5l
Y3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNDU5
LDEyICs0NTcsMTIgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ciBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwogI2VuZGlmCiAKLSAgICBSZWY8V29y
a1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWU7CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdG9yYWdl
VGFza1F1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZVRh
c2siKSB9OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7CiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9pZGJT
ZXJ2ZXJzOwotICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVvdGE7CisgICAgdWludDY0X3Qg
bV9pZGJQZXJPcmlnaW5RdW90YSB7IFdlYkNvcmU6OklEQlNlcnZlcjo6ZGVmYXVsdFBlck9yaWdp
blF1b3RhIH07CiAjZW5kaWYKIAogICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9zdG9yYWdl
VGFza3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29s
cy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHJldmlzaW9uIDI0MDI5MikKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UmVxdWVzdChHUmVmUHRyPEdUYXNrPiYmIHRhc2spIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBXZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMqIHJlcXVlc3Qg
PSBXRUJLSVRfU09VUF9SRVFVRVNUX0dFTkVSSUMoZ190YXNrX2dldF9zb3VyY2Vfb2JqZWN0KHRh
c2suZ2V0KCkpKTsKLSAgICAgICAgYXV0byogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyID0gTmV0d29y
a1Byb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyPigpOworICAgICAgICBhdXRvKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIgPSBsYXN0Q3JlYXRl
ZE5ldHdvcmtQcm9jZXNzKCktPnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
PigpOwogICAgICAgICBpZiAoIWN1c3RvbVByb3RvY29sTWFuYWdlcikKICAgICAgICAgICAgIHJl
dHVybjsKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0
d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZp
Y2VFbnRyeVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAordGVtcGxhdGU8Pgordm9pZCBpbml0aWFsaXplQ2hpbGRQcm9jZXNzPFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M+KENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxOZXR3b3Jr
UHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3MoV1RG
TW92ZShwYXJhbWV0ZXJzKSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCShyZXZpc2lv
biAyNDAyOTIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1By
b2Nlc3NNYWluU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEyIEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCit0ZW1wbGF0ZTw+Cit2b2lkIGluaXRpYWxpemVDaGlsZFByb2Nl
c3M8V2ViS2l0OjpOZXR3b3JrUHJvY2Vzcz4oQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPE5l
dHdvcmtQcm9jZXNzPj4gbmV0d29ya1Byb2Nlc3MoYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vz
cyhXVEZNb3ZlKHBhcmFtZXRlcnMpKSkpOworfQorCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc01haW4g
ZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CiBwdWJsaWM6CiAgICAgdm9pZCBw
bGF0Zm9ybUZpbmFsaXplKCkgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2luL05ldHdvcmtQcm9jZXNzTWFpbldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcAkocmV2
aXNpb24gMjQwMjkxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29y
a1Byb2Nlc3NNYWluV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTIgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJv
Y2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8
TmV0d29ya1Byb2Nlc3M+PiBuZXR3b3JrUHJvY2VzcyhhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9j
ZXNzKFdURk1vdmUocGFyYW1ldGVycykpKSk7Cit9CisKIGludCBOZXR3b3JrUHJvY2Vzc01haW5X
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWlu
PE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluQmFzZT4oYXJnYywgYXJndik7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5oCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY3LDYgKzY3LDEyIEBAIHByb3RlY3RlZDoKICAgICB4cGNfb2JqZWN0X3QgbV9p
bml0aWFsaXplck1lc3NhZ2U7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBYUENTZXJ2aWNlVHlw
ZT4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5nbGV0
b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBYUENT
ZXJ2aWNlVHlwZSwgdHlwZW5hbWUgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGVUeXBlPgog
dm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90
IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQogewpAQCAtMTE5LDcgKzEyNSw3IEBAIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9IFhQ
Q1NlcnZpY2VUeXBlOjpwcm9jZXNzVHlwZTsKIAotICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5nbGV0
b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworICAgIGluaXRpYWxpemVDaGlsZFByb2Nlc3M8
WFBDU2VydmljZVR5cGU+KFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCiBpbnQgWFBDU2Vydmlj
ZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359838</attachid>
            <date>2019-01-22 19:40:12 -0800</date>
            <delta_ts>2019-01-22 21:27:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193700-20190122194011.patch</filename>
            <type>text/plain</type>
            <size>11606</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAzMTQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTIyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM3MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBOZXZlckRlc3Ryb3llZDxS
ZWY8TmV0d29ya1Byb2Nlc3M+PiBhbmQgcGF2ZXMgdGhlIHdheSBmb3IgbW9yZSBpbnRlcmVzdGlu
ZyB0aGluZ3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291
cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2lu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzPik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2ViS2l0OjpOZXR3b3JrUHJvY2Vzcz4pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dpbi9OZXR3b3JrUHJvY2Vzc01haW5XaW4uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hpbGRQcm9jZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M+KToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplQ2hp
bGRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVyKToKKwog
MjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBhbiBpbnRlcm5hbCBidWlsZCBmYWlsdXJlIGFmdGVyIHIyNDAyOTIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CShyZXZpc2lvbiAyNDAyOTUpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDI4ICsxMTcsMTEgQEAgc3RhdGlj
IHZvaWQgY2FsbEV4aXRTb29uKElQQzo6Q29ubmVjdGlvbgogICAgIH0pOwogfQogCi1OZXR3b3Jr
UHJvY2VzcyYgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlZjxOZXR3b3JrUHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpu
ZXcgTmV0d29ya1Byb2Nlc3MpKTsKLSAgICByZXR1cm4gbmV0d29ya1Byb2Nlc3MuZ2V0KCk7Ci19
Ci0KLU5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCi0gICAgOiBtX2hhc1NldENhY2hl
TW9kZWwoZmFsc2UpCi0gICAgLCBtX2NhY2hlTW9kZWwoQ2FjaGVNb2RlbDo6RG9jdW1lbnRWaWV3
ZXIpCi0gICAgLCBtX2Rpc2tDYWNoZUlzRGlzYWJsZWRGb3JUZXN0aW5nKGZhbHNlKQotICAgICwg
bV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbih0cnVlKQotICAgICwgbV9kb3du
bG9hZE1hbmFnZXIoKnRoaXMpCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLCBtX2NsZWFyQ2Fj
aGVEaXNwYXRjaEdyb3VwKDApCi0jZW5kaWYKK05ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vz
cyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorICAg
IDogbV9kb3dubG9hZE1hbmFnZXIoKnRoaXMpCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKICAgICAsIG1fbmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKnRoaXMpCiAjZW5kaWYK
LSAgICAsIG1fc3RvcmFnZVRhc2tRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldl
YktpdC5TdG9yYWdlVGFzayIpKQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgICwg
bV9pZGJQZXJPcmlnaW5RdW90YShJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSkKLSNl
bmRpZgogewogICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXpl
KCk7CiAKQEAgLTE2Niw2ICsxNDksOCBAQCBOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3Mo
KQogICAgICAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3NDb25uZWN0aW9uIDogd2ViUHJvY2Vzc0Nv
bm5lY3Rpb25zKQogICAgICAgICAgICAgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE9uTGluZVN0
YXRlKGlzT25MaW5lKTsKICAgICB9KTsKKworICAgIGluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0
ZXJzKSk7CiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24g
MjQwMjkyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsOCArMTA2LDggQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3Mg
OiBwdWJsaWMgQ2hpbGRQcm9jZQogewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldHdvcmtQ
cm9jZXNzKTsKIHB1YmxpYzoKKyAgICBOZXR3b3JrUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7Ci0gICAgc3RhdGlj
IE5ldHdvcmtQcm9jZXNzJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgY29uc3RleHByIFByb2Nl
c3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6Ok5ldHdvcms7CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KQEAgLTI4Niw4ICsyODYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1
ZXN0Q2FjaGVTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qg
c3BhY2VSZXF1aXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4p
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrUHJvY2VzcygpOwotCiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYpOwogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKSBvdmVycmlkZTsKQEAgLTQyMiwx
MSArNDIwLDExIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCiAgICAgU3RyaW5nIG1f
ZGlza0NhY2hlRGlyZWN0b3J5OwotICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOworICAgIGJv
b2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKICAgICBDYWNoZU1vZGVsIG1fY2FjaGVN
b2RlbDsKICAgICBib29sIG1fc3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9kaXNrQ2FjaGVJc0Rpc2FibGVkRm9yVGVzdGluZzsKLSAgICBib29sIG1f
Y2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CisgICAgYm9vbCBtX2Rpc2tDYWNo
ZUlzRGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FuSGFuZGxlSFRU
UFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgU3RyaW5nIG1fdWlQcm9jZXNz
QnVuZGxlSWRlbnRpZmllcjsKICAgICBEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7
CiAKQEAgLTQ1MCw3ICs0NDgsNyBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2Ug
dG8gYmUgYWJsZSB0byBkbyB0aGlzIHdpdGhvdXQgdGhlICNpZmRlZiwgYnV0IFdvcmtRdWV1ZSAr
IEJpbmFyeVNlbWFwaG9yZSBpc24ndCBnb29kIGVub3VnaCBzaW5jZQogICAgIC8vIG11bHRpcGxl
IHJlcXVlc3RzIHRvIGNsZWFyIHRoZSBjYWNoZSBjYW4gY29tZSBpbiBiZWZvcmUgcHJldmlvdXMg
cmVxdWVzdHMgY29tcGxldGUsIGFuZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtLgog
ICAgIC8vIEluIHRoZSBmdXR1cmUgdXNpbmcgV29ya1F1ZXVlIGFuZCBhIGNvdW50aW5nIHNlbWFw
aG9yZSB3b3VsZCB3b3JrLCBhcyB3b3VsZCBXb3JrUXVldWUgc3VwcG9ydGluZyB0aGUgbGliZGlz
cGF0Y2ggY29uY2VwdCBvZiAid29yayBncm91cHMiLgotICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9j
bGVhckNhY2hlRGlzcGF0Y2hHcm91cDsKKyAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJDYWNo
ZURpc3BhdGNoR3JvdXAgeyBudWxscHRyIH07CiAKICAgICBib29sIG1fc3VwcHJlc3Nlc0Nvbm5l
Y3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNDU5
LDEyICs0NTcsMTIgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ciBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwogI2VuZGlmCiAKLSAgICBSZWY8V29y
a1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWU7CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdG9yYWdl
VGFza1F1ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZVRh
c2siKSB9OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7CiAgICAgSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9pZGJT
ZXJ2ZXJzOwotICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVvdGE7CisgICAgdWludDY0X3Qg
bV9pZGJQZXJPcmlnaW5RdW90YSB7IFdlYkNvcmU6OklEQlNlcnZlcjo6ZGVmYXVsdFBlck9yaWdp
blF1b3RhIH07CiAjZW5kaWYKIAogICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9zdG9yYWdl
VGFza3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29s
cy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHJldmlzaW9uIDI0MDI5MikKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UmVxdWVzdChHUmVmUHRyPEdUYXNrPiYmIHRhc2spIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBXZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMqIHJlcXVlc3Qg
PSBXRUJLSVRfU09VUF9SRVFVRVNUX0dFTkVSSUMoZ190YXNrX2dldF9zb3VyY2Vfb2JqZWN0KHRh
c2suZ2V0KCkpKTsKLSAgICAgICAgYXV0byogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyID0gTmV0d29y
a1Byb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyPigpOworICAgICAgICBhdXRvKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIgPSBsYXN0Q3JlYXRl
ZE5ldHdvcmtQcm9jZXNzKCktPnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
PigpOwogICAgICAgICBpZiAoIWN1c3RvbVByb3RvY29sTWFuYWdlcikKICAgICAgICAgICAgIHJl
dHVybjsKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0
d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZp
Y2VFbnRyeVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAordGVtcGxhdGU8Pgordm9pZCBpbml0aWFsaXplQ2hpbGRQcm9jZXNzPFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M+KENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxOZXR3b3Jr
UHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nlc3MoV1RG
TW92ZShwYXJhbWV0ZXJzKSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCShyZXZpc2lv
biAyNDAyOTIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1By
b2Nlc3NNYWluU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDExICszMywxNCBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAordGVtcGxhdGU8Pgordm9pZCBpbml0aWFsaXplQ2hpbGRQcm9j
ZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nlc3M+KENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxO
ZXR3b3JrUHJvY2Vzcz4+IG5ldHdvcmtQcm9jZXNzKGFkb3B0UmVmKCpuZXcgTmV0d29ya1Byb2Nl
c3MoV1RGTW92ZShwYXJhbWV0ZXJzKSkpKTsKK30KKwogY2xhc3MgTmV0d29ya1Byb2Nlc3NNYWlu
IGZpbmFsOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkJhc2UgewogcHVibGljOgotICAgIHZvaWQg
cGxhdGZvcm1GaW5hbGl6ZSgpIG92ZXJyaWRlCi0gICAgewotICAgIH0KIH07CiAKIGludCBOZXR3
b3JrUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2luL05ldHdvcmtQcm9jZXNzTWFpbldpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NN
YWluV2luLmNwcAkocmV2aXNpb24gMjQwMjkxKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5p
dGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZWY8TmV0d29ya1Byb2Nlc3M+PiBuZXR3b3JrUHJvY2VzcyhhZG9wdFJlZigq
bmV3IE5ldHdvcmtQcm9jZXNzKFdURk1vdmUocGFyYW1ldGVycykpKSk7Cit9CisKIGludCBOZXR3
b3JrUHJvY2Vzc01haW5XaW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIHJldHVybiBD
aGlsZFByb2Nlc3NNYWluPE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluQmFzZT4oYXJn
YywgYXJndik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCShyZXZpc2lvbiAyNDAyOTEpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDEyIEBAIHByb3RlY3RlZDoKICAgICB4
cGNfb2JqZWN0X3QgbV9pbml0aWFsaXplck1lc3NhZ2U7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBYUENTZXJ2aWNlVHlwZT4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJvY2VzcyhDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIFhQQ1NlcnZp
Y2VUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworfQorCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBYUENTZXJ2aWNlVHlwZSwgdHlwZW5hbWUgWFBDU2VydmljZUluaXRpYWxpemVy
RGVsZWdhdGVUeXBlPgogdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBj
X2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2Fn
ZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQogewpAQCAtMTE5LDcgKzEyNSw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgcGFyYW1ldGVycy5w
cm9jZXNzVHlwZSA9IFhQQ1NlcnZpY2VUeXBlOjpwcm9jZXNzVHlwZTsKIAotICAgIFhQQ1NlcnZp
Y2VUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKHBhcmFtZXRlcnMpOworICAgIGluaXRpYWxp
emVDaGlsZFByb2Nlc3M8WFBDU2VydmljZVR5cGU+KFdURk1vdmUocGFyYW1ldGVycykpOwogfQog
CiBpbnQgWFBDU2VydmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopOwpJbmRleDogU291cmNlL1dl
YktpdC9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWluLmgJKHJldmlzaW9uIDI0MDI5MSkK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI2lmbmRlZiBDaGlsZFByb2Nlc3NNYWluX2gKLSNkZWZpbmUgQ2hpbGRQcm9j
ZXNzTWFpbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCkBAIC0zNiwxNCArMzUsMTkgQEAgY2xhc3MgQ2hp
bGRQcm9jZXNzTWFpbkJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUlu
aXRpYWxpemUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhcnNlQ29tbWFu
ZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1G
aW5hbGl6ZSgpIHsgfQogCi0gICAgY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiBpbml0aWFsaXphdGlvblBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnM7IH0KKyAgICBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBpbml0
aWFsaXphdGlvblBhcmFtZXRlcnMoKSB7IHJldHVybiBXVEZNb3ZlKG1fcGFyYW1ldGVycyk7IH0K
IAogcHJvdGVjdGVkOgogICAgIENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyBt
X3BhcmFtZXRlcnM7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGlsZFByb2Nlc3NUeXBlPgor
dm9pZCBpbml0aWFsaXplQ2hpbGRQcm9jZXNzKENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCit7CisgICAgQ2hpbGRQcm9jZXNzVHlwZTo6c2luZ2xldG9u
KCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hpbGRQ
cm9jZXNzVHlwZSwgdHlwZW5hbWUgQ2hpbGRQcm9jZXNzTWFpblR5cGU+CiBpbnQgQ2hpbGRQcm9j
ZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CkBAIC01NywxMyArNjEsMTAgQEAgaW50
IENoaWxkUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcgogICAgIGlmICghY2hpbGRNYWlu
LnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCiAgICAgICAgIHJldHVybiBFWElUX0ZBSUxV
UkU7CiAKLSAgICBDaGlsZFByb2Nlc3NUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKGNoaWxk
TWFpbi5pbml0aWFsaXphdGlvblBhcmFtZXRlcnMoKSk7CisgICAgaW5pdGlhbGl6ZUNoaWxkUHJv
Y2VzczxDaGlsZFByb2Nlc3NUeXBlPihjaGlsZE1haW4uaW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
KCkpOwogICAgIFJ1bkxvb3A6OnJ1bigpOwotICAgIGNoaWxkTWFpbi5wbGF0Zm9ybUZpbmFsaXpl
KCk7CiAKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIENoaWxkUHJvY2Vzc01haW5faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359847</attachid>
            <date>2019-01-22 21:27:48 -0800</date>
            <delta_ts>2019-01-23 14:36:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193700-20190122212747.patch</filename>
            <type>text/plain</type>
            <size>11630</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAzMTQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTIyICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM3MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBOZXZlckRlc3Ryb3llZDxO
ZXR3b3JrUHJvY2Vzcz4gYW5kIHBhdmVzIHRoZSB3YXkgZm9yIG1vcmUgaW50ZXJlc3RpbmcgdGhp
bmdzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW06
CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzcz4pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbik6IERlbGV0ZWQuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
bml0aWFsaXplQ2hpbGRQcm9jZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nlc3M+KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPik6
CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplcik6CisKIDIwMTkt
MDEtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBGaXggYW4gaW50ZXJuYWwgYnVpbGQgZmFpbHVyZSBhZnRlciByMjQwMjkyCkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2
aXNpb24gMjQwMjk1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNywyNyArMTE3LDEwIEBAIHN0YXRpYyB2b2lk
IGNhbGxFeGl0U29vbihJUEM6OkNvbm5lY3Rpb24KICAgICB9KTsKIH0KIAotTmV0d29ya1Byb2Nl
c3MmIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSZWY8TmV0d29ya1Byb2Nlc3M+PiBuZXR3b3JrUHJvY2VzcyhhZG9wdFJlZigqbmV3IE5l
dHdvcmtQcm9jZXNzKSk7Ci0gICAgcmV0dXJuIG5ldHdvcmtQcm9jZXNzLmdldCgpOwotfQotCi1O
ZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoKQotICAgIDogbV9oYXNTZXRDYWNoZU1vZGVs
KGZhbHNlKQotICAgICwgbV9jYWNoZU1vZGVsKENhY2hlTW9kZWw6OkRvY3VtZW50Vmlld2VyKQot
ICAgICwgbV9kaXNrQ2FjaGVJc0Rpc2FibGVkRm9yVGVzdGluZyhmYWxzZSkKLSAgICAsIG1fY2Fu
SGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24odHJ1ZSkKLSAgICAsIG1fZG93bmxvYWRN
YW5hZ2VyKCp0aGlzKQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICwgbV9jbGVhckNhY2hlRGlz
cGF0Y2hHcm91cCgwKQotI2VuZGlmCitOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoQ2hp
bGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKKyAgICA6IG1f
ZG93bmxvYWRNYW5hZ2VyIHsgKnRoaXMgfQogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgLCBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCp0aGlzKQotI2VuZGlmCi0g
ICAgLCBtX3N0b3JhZ2VUYXNrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZVRhc2siKSkKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAsIG1f
aWRiUGVyT3JpZ2luUXVvdGEoSURCU2VydmVyOjpkZWZhdWx0UGVyT3JpZ2luUXVvdGEpCisgICAg
LCBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIHsgKnRoaXMgfQogI2VuZGlmCiB7CiAg
ICAgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsKQEAgLTE2
Niw2ICsxNDksOCBAQCBOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoKQogICAgICAgICBm
b3IgKGF1dG8mIHdlYlByb2Nlc3NDb25uZWN0aW9uIDogd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zKQog
ICAgICAgICAgICAgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE9uTGluZVN0YXRlKGlzT25MaW5l
KTsKICAgICB9KTsKKworICAgIGluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAK
IE5ldHdvcmtQcm9jZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMjQwMjkyKQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDYsOCArMTA2LDggQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hp
bGRQcm9jZQogewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldHdvcmtQcm9jZXNzKTsKIHB1
YmxpYzoKKyAgICBOZXR3b3JrUHJvY2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7Ci0gICAgc3RhdGljIE5ldHdvcmtQcm9j
ZXNzJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlID0gUHJvY2Vzc1R5cGU6Ok5ldHdvcms7CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KQEAgLTI4Niw4ICsyODYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0Q2FjaGVTdG9y
YWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVp
bnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDx1aW50NjRfdD4pPiYmKTsKIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrUHJvY2VzcygpOwotCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYp
OwogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKSBvdmVycmlkZTsKQEAgLTQyMiwxMSArNDIwLDExIEBA
IHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogCiAgICAgU3RyaW5nIG1fZGlza0NhY2hlRGly
ZWN0b3J5OwotICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOwotICAgIENhY2hlTW9kZWwgbV9j
YWNoZU1vZGVsOworICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKKyAgICBD
YWNoZU1vZGVsIG1fY2FjaGVNb2RlbCB7IENhY2hlTW9kZWw6OkRvY3VtZW50Vmlld2VyIH07CiAg
ICAgYm9vbCBtX3N1cHByZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fZGlza0NhY2hlSXNEaXNhYmxlZEZvclRlc3Rpbmc7Ci0gICAgYm9vbCBtX2NhbkhhbmRs
ZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOworICAgIGJvb2wgbV9kaXNrQ2FjaGVJc0Rpc2Fi
bGVkRm9yVGVzdGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhbkhhbmRsZUhUVFBTU2VydmVy
VHJ1c3RFdmFsdWF0aW9uIHsgdHJ1ZSB9OwogICAgIFN0cmluZyBtX3VpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXI7CiAgICAgRG93bmxvYWRNYW5hZ2VyIG1fZG93bmxvYWRNYW5hZ2VyOwogCkBAIC00
NTAsNyArNDQ4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBGSVhNRTogV2UnZCBsaWtlIHRvIGJlIGFi
bGUgdG8gZG8gdGhpcyB3aXRob3V0IHRoZSAjaWZkZWYsIGJ1dCBXb3JrUXVldWUgKyBCaW5hcnlT
ZW1hcGhvcmUgaXNuJ3QgZ29vZCBlbm91Z2ggc2luY2UKICAgICAvLyBtdWx0aXBsZSByZXF1ZXN0
cyB0byBjbGVhciB0aGUgY2FjaGUgY2FuIGNvbWUgaW4gYmVmb3JlIHByZXZpb3VzIHJlcXVlc3Rz
IGNvbXBsZXRlLCBhbmQgd2UgbmVlZCB0byB3YWl0IGZvciBhbGwgb2YgdGhlbS4KICAgICAvLyBJ
biB0aGUgZnV0dXJlIHVzaW5nIFdvcmtRdWV1ZSBhbmQgYSBjb3VudGluZyBzZW1hcGhvcmUgd291
bGQgd29yaywgYXMgd291bGQgV29ya1F1ZXVlIHN1cHBvcnRpbmcgdGhlIGxpYmRpc3BhdGNoIGNv
bmNlcHQgb2YgIndvcmsgZ3JvdXBzIi4KLSAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJDYWNo
ZURpc3BhdGNoR3JvdXA7CisgICAgZGlzcGF0Y2hfZ3JvdXBfdCBtX2NsZWFyQ2FjaGVEaXNwYXRj
aEdyb3VwIHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBtX3N1cHByZXNzZXNDb25uZWN0aW9uVGVy
bWluYXRpb25PblN5c3RlbUNoYW5nZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTQ1OSwxMiArNDU3
LDEyIEBAIHByaXZhdGU6CiAgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgbV9uZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsKICNlbmRpZgogCi0gICAgUmVmPFdvcmtRdWV1ZT4g
bV9zdG9yYWdlVGFza1F1ZXVlOworICAgIFJlZjxXb3JrUXVldWU+IG1fc3RvcmFnZVRhc2tRdWV1
ZSB7IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VUYXNrIikgfTsK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9u
SUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBhdGhzOwogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9u
SUQsIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4+IG1faWRiU2VydmVyczsK
LSAgICB1aW50NjRfdCBtX2lkYlBlck9yaWdpblF1b3RhOworICAgIHVpbnQ2NF90IG1faWRiUGVy
T3JpZ2luUXVvdGEgeyBXZWJDb3JlOjpJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSB9
OwogI2VuZGlmCiAKICAgICBEZXF1ZTxDcm9zc1RocmVhZFRhc2s+IG1fc3RvcmFnZVRhc2tzOwpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlclNvdXAuY3BwCShyZXZpc2lvbiAyNDAyOTIpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlclNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdGFydFJlcXVlc3QoR1JlZlB0cjxHVGFzaz4mJiB0YXNrKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgV2ViS2l0U291cFJlcXVlc3RHZW5lcmljKiByZXF1ZXN0ID0gV0VCS0lU
X1NPVVBfUkVRVUVTVF9HRU5FUklDKGdfdGFza19nZXRfc291cmNlX29iamVjdCh0YXNrLmdldCgp
KSk7Ci0gICAgICAgIGF1dG8qIGN1c3RvbVByb3RvY29sTWFuYWdlciA9IE5ldHdvcmtQcm9jZXNz
OjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcj4oKTsK
KyAgICAgICAgYXV0byogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyID0gbGFzdENyZWF0ZWROZXR3b3Jr
UHJvY2VzcygpLT5zdXBwbGVtZW50PExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcj4oKTsKICAg
ICAgICAgaWYgKCFjdXN0b21Qcm90b2NvbE1hbmFnZXIpCiAgICAgICAgICAgICByZXR1cm47CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2
aWNlRW50cnlQb2ludC5tbQkocmV2aXNpb24gMjQwMjkxKQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQ
b2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTIgQEAgcHVibGljOgogICAgIH0K
IH07CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxOZXR3b3JrUHJvY2Vzcz4gbmV0
d29ya1Byb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3Vw
LmNwcAkocmV2aXNpb24gMjQwMjkyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSAr
MzMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlh
bGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxOZXR3b3JrUHJvY2Vzcz4gbmV0d29ya1Byb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJz
KSk7Cit9CisKIGNsYXNzIE5ldHdvcmtQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJv
Y2Vzc01haW5CYXNlIHsKIHB1YmxpYzoKLSAgICB2b2lkIHBsYXRmb3JtRmluYWxpemUoKSBvdmVy
cmlkZQotICAgIHsKLSAgICB9CiB9OwogCiBpbnQgTmV0d29ya1Byb2Nlc3NNYWluVW5peChpbnQg
YXJnYywgY2hhcioqIGFyZ3YpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dp
bi9OZXR3b3JrUHJvY2Vzc01haW5XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2luL05ldHdvcmtQcm9jZXNzTWFpbldpbi5jcHAJKHJldmlzaW9uIDI0
MDI5MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2luL05ldHdvcmtQcm9jZXNz
TWFpbldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCit0ZW1wbGF0ZTw+Cit2b2lkIGluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzcz4oQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TmV0d29ya1Byb2Nl
c3M+IG5ldHdvcmtQcm9jZXNzKFdURk1vdmUocGFyYW1ldGVycykpOworfQorCiBpbnQgTmV0d29y
a1Byb2Nlc3NNYWluV2luKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICByZXR1cm4gQ2hp
bGRQcm9jZXNzTWFpbjxOZXR3b3JrUHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFpbkJhc2U+KGFyZ2Ms
IGFyZ3YpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9t
YWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaAkocmV2aXNpb24gMjQwMjkxKQorKysgU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2NywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgeHBj
X29iamVjdF90IG1faW5pdGlhbGl6ZXJNZXNzYWdlOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUg
WFBDU2VydmljZVR5cGU+Cit2b2lkIGluaXRpYWxpemVDaGlsZFByb2Nlc3MoQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBYUENTZXJ2aWNl
VHlwZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgWFBDU2VydmljZVR5cGUsIHR5cGVuYW1lIFhQQ1NlcnZpY2VJbml0
aWFsaXplckRlbGVnYXRlVHlwZT4KIHZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0
UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXpl
ck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkKIHsKQEAgLTExOSw3
ICsxMjUsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHBhcmFt
ZXRlcnMucHJvY2Vzc1R5cGUgPSBYUENTZXJ2aWNlVHlwZTo6cHJvY2Vzc1R5cGU7CiAKLSAgICBY
UENTZXJ2aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKKyAgICBp
bml0aWFsaXplQ2hpbGRQcm9jZXNzPFhQQ1NlcnZpY2VUeXBlPihXVEZNb3ZlKHBhcmFtZXRlcnMp
KTsKIH0KIAogaW50IFhQQ1NlcnZpY2VNYWluKGludCwgY29uc3QgY2hhcioqKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5oCShyZXZpc2lvbiAy
NDAyOTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQ2hpbGRQcm9jZXNzTWFpbl9oCi0jZGVmaW5lIENo
aWxkUHJvY2Vzc01haW5faAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDaGlsZFByb2Nlc3Mu
aCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgpAQCAtMzYsMTQgKzM1LDE5IEBAIGNs
YXNzIENoaWxkUHJvY2Vzc01haW5CYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGxh
dGZvcm1Jbml0aWFsaXplKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYXJz
ZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci0gICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtRmluYWxpemUoKSB7IH0KIAotICAgIGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgaW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzOyB9CisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiYgdGFrZUluaXRpYWxpemF0aW9uUGFyYW1ldGVycygpIHsgcmV0dXJuIFdURk1vdmUobV9wYXJh
bWV0ZXJzKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENoaWxkUHJv
Y2Vzc1R5cGU+Cit2b2lkIGluaXRpYWxpemVDaGlsZFByb2Nlc3MoQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBDaGlsZFByb2Nlc3NUeXBl
OjpzaW5nbGV0b24oKS5pbml0aWFsaXplKFdURk1vdmUocGFyYW1ldGVycykpOworfQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGlsZFByb2Nlc3NUeXBlLCB0eXBlbmFtZSBDaGlsZFByb2Nlc3NNYWlu
VHlwZT4KIGludCBDaGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKQEAg
LTU3LDEzICs2MSwxMCBAQCBpbnQgQ2hpbGRQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFy
CiAgICAgaWYgKCFjaGlsZE1haW4ucGFyc2VDb21tYW5kTGluZShhcmdjLCBhcmd2KSkKICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIAotICAgIENoaWxkUHJvY2Vzc1R5cGU6OnNpbmdsZXRv
bigpLmluaXRpYWxpemUoY2hpbGRNYWluLmluaXRpYWxpemF0aW9uUGFyYW1ldGVycygpKTsKKyAg
ICBpbml0aWFsaXplQ2hpbGRQcm9jZXNzPENoaWxkUHJvY2Vzc1R5cGU+KGNoaWxkTWFpbi50YWtl
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzKCkpOwogICAgIFJ1bkxvb3A6OnJ1bigpOwotICAgIGNo
aWxkTWFpbi5wbGF0Zm9ybUZpbmFsaXplKCk7CiAKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIENoaWxkUHJvY2Vzc01haW5f
aAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359944</attachid>
            <date>2019-01-23 14:36:22 -0800</date>
            <delta_ts>2019-01-23 15:40:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193700-20190123143621.patch</filename>
            <type>text/plain</type>
            <size>12105</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDAzNjApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCB1c2luZyBO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM3MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBOZXZlckRlc3Ryb3llZDxO
ZXR3b3JrUHJvY2Vzcz4gYW5kIHBhdmVzIHRoZSB3YXkgZm9yIG1vcmUgaW50ZXJlc3RpbmcgdGhp
bmdzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW06
CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVDaGlsZFByb2Nlc3M8V2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzcz4pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbik6IERlbGV0ZWQuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
bml0aWFsaXplQ2hpbGRQcm9jZXNzPFdlYktpdDo6TmV0d29ya1Byb2Nlc3M+KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzPik6
CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUNoaWxkUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplcik6CisKIDIwMTkt
MDEtMjMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU3dp
dGNoIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBwb3J0aW9ucyBvZiBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzIHRvIEFzeW5jIG1lc3NhZ2UgcGFzc2luZyBzdHlsZQpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0MDM2MCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsMjggKzEyNCwxMSBAQCBzdGF0aWMgdm9pZCBjYWxsRXhpdFNvb24o
SVBDOjpDb25uZWN0aW9uCiAgICAgfSk7CiB9CiAKLU5ldHdvcmtQcm9jZXNzJiBOZXR3b3JrUHJv
Y2Vzczo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPE5ldHdv
cmtQcm9jZXNzPj4gbmV0d29ya1Byb2Nlc3MoYWRvcHRSZWYoKm5ldyBOZXR3b3JrUHJvY2Vzcykp
OwotICAgIHJldHVybiBuZXR3b3JrUHJvY2Vzcy5nZXQoKTsKLX0KLQotTmV0d29ya1Byb2Nlc3M6
Ok5ldHdvcmtQcm9jZXNzKCkKLSAgICA6IG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkKLSAgICAs
IG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsOjpEb2N1bWVudFZpZXdlcikKLSAgICAsIG1fZGlza0Nh
Y2hlSXNEaXNhYmxlZEZvclRlc3RpbmcoZmFsc2UpCi0gICAgLCBtX2NhbkhhbmRsZUhUVFBTU2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uKHRydWUpCi0gICAgLCBtX2Rvd25sb2FkTWFuYWdlcigqdGhpcykK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAoMCkK
LSNlbmRpZgorTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCisgICAgOiBtX2Rvd25sb2FkTWFuYWdl
cigqdGhpcykKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgICwgbV9uZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlcigqdGhpcykKICNlbmRpZgotICAgICwgbV9zdG9yYWdlVGFz
a1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VUYXNrIikp
Ci0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgLCBtX2lkYlBlck9yaWdpblF1b3Rh
KElEQlNlcnZlcjo6ZGVmYXVsdFBlck9yaWdpblF1b3RhKQotI2VuZGlmCiB7CiAgICAgTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsKIApAQCAtMTcyLDYgKzE1
NSw4IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCiAgICAgICAgIGZvciAoYXV0
byYgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiB3ZWJQcm9jZXNzQ29ubmVjdGlvbnMpCiAgICAgICAg
ICAgICB3ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2V0T25MaW5lU3RhdGUoaXNPbkxpbmUpOwogICAg
IH0pOworCisgICAgaW5pdGlhbGl6ZShXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKIH0KIAogTmV0d29y
a1Byb2Nlc3M6On5OZXR3b3JrUHJvY2VzcygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDAzNjApCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwOCw4ICsxMDgsOCBAQCBjbGFzcyBOZXR3b3JrUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nl
CiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTmV0d29ya1Byb2Nlc3MpOwogcHVibGljOgor
ICAgIE5ldHdvcmtQcm9jZXNzKENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYm
KTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKLSAgICBzdGF0aWMgTmV0d29ya1Byb2Nlc3MmIHNp
bmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUg
PSBQcm9jZXNzVHlwZTo6TmV0d29yazsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAt
Mjg4LDggKzI4OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RDYWNoZVN0b3JhZ2VTcGFj
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgdWludDY0X3Qg
cXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVpcmVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPHVpbnQ2NF90Pik+JiYpOwogCiBwcml2YXRlOgot
ICAgIE5ldHdvcmtQcm9jZXNzKCk7Ci0KICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1D
cmVhdGVEZWZhdWx0U3RvcmFnZVNlc3Npb24oKSBjb25zdDsKIApAQCAtNDI1LDExICs0MjMsMTEg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7CiAKICAgICBTdHJpbmcgbV9kaXNrQ2FjaGVE
aXJlY3Rvcnk7Ci0gICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWw7Ci0gICAgQ2FjaGVNb2RlbCBt
X2NhY2hlTW9kZWw7CisgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWwgeyBmYWxzZSB9OworICAg
IENhY2hlTW9kZWwgbV9jYWNoZU1vZGVsIHsgQ2FjaGVNb2RlbDo6RG9jdW1lbnRWaWV3ZXIgfTsK
ICAgICBib29sIG1fc3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9kaXNrQ2FjaGVJc0Rpc2FibGVkRm9yVGVzdGluZzsKLSAgICBib29sIG1fY2FuSGFu
ZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CisgICAgYm9vbCBtX2Rpc2tDYWNoZUlzRGlz
YWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FuSGFuZGxlSFRUUFNTZXJ2
ZXJUcnVzdEV2YWx1YXRpb24geyB0cnVlIH07CiAgICAgU3RyaW5nIG1fdWlQcm9jZXNzQnVuZGxl
SWRlbnRpZmllcjsKICAgICBEb3dubG9hZE1hbmFnZXIgbV9kb3dubG9hZE1hbmFnZXI7CiAKQEAg
LTQ1Myw3ICs0NTEsNyBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2UgdG8gYmUg
YWJsZSB0byBkbyB0aGlzIHdpdGhvdXQgdGhlICNpZmRlZiwgYnV0IFdvcmtRdWV1ZSArIEJpbmFy
eVNlbWFwaG9yZSBpc24ndCBnb29kIGVub3VnaCBzaW5jZQogICAgIC8vIG11bHRpcGxlIHJlcXVl
c3RzIHRvIGNsZWFyIHRoZSBjYWNoZSBjYW4gY29tZSBpbiBiZWZvcmUgcHJldmlvdXMgcmVxdWVz
dHMgY29tcGxldGUsIGFuZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtLgogICAgIC8v
IEluIHRoZSBmdXR1cmUgdXNpbmcgV29ya1F1ZXVlIGFuZCBhIGNvdW50aW5nIHNlbWFwaG9yZSB3
b3VsZCB3b3JrLCBhcyB3b3VsZCBXb3JrUXVldWUgc3VwcG9ydGluZyB0aGUgbGliZGlzcGF0Y2gg
Y29uY2VwdCBvZiAid29yayBncm91cHMiLgotICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9jbGVhckNh
Y2hlRGlzcGF0Y2hHcm91cDsKKyAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJDYWNoZURpc3Bh
dGNoR3JvdXAgeyBudWxscHRyIH07CiAKICAgICBib29sIG1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25U
ZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNDYyLDEyICs0
NjAsMTIgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBtX25l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwogI2VuZGlmCiAKLSAgICBSZWY8V29ya1F1ZXVl
PiBtX3N0b3JhZ2VUYXNrUXVldWU7CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdG9yYWdlVGFza1F1
ZXVlIHsgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZVRhc2siKSB9
OwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgU3RyaW5nPiBtX2lkYkRhdGFiYXNlUGF0aHM7CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPj4gbV9pZGJTZXJ2ZXJz
OwotICAgIHVpbnQ2NF90IG1faWRiUGVyT3JpZ2luUXVvdGE7CisgICAgdWludDY0X3QgbV9pZGJQ
ZXJPcmlnaW5RdW90YSB7IFdlYkNvcmU6OklEQlNlcnZlcjo6ZGVmYXVsdFBlck9yaWdpblF1b3Rh
IH07CiAjZW5kaWYKIAogICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9zdG9yYWdlVGFza3M7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3Vw
L0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyU291cC5jcHAJKHJldmlzaW9uIDI0MDM2MCkKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvTGVnYWN5Q3VzdG9tUHJvdG9j
b2xNYW5hZ2VyU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0UmVxdWVzdChHUmVmUHRyPEdUYXNrPiYmIHRhc2spIG92ZXJyaWRl
CiAgICAgewogICAgICAgICBXZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMqIHJlcXVlc3QgPSBXRUJL
SVRfU09VUF9SRVFVRVNUX0dFTkVSSUMoZ190YXNrX2dldF9zb3VyY2Vfb2JqZWN0KHRhc2suZ2V0
KCkpKTsKLSAgICAgICAgYXV0byogY3VzdG9tUHJvdG9jb2xNYW5hZ2VyID0gTmV0d29ya1Byb2Nl
c3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigp
OworICAgICAgICBhdXRvKiBjdXN0b21Qcm90b2NvbE1hbmFnZXIgPSBsYXN0Q3JlYXRlZE5ldHdv
cmtQcm9jZXNzKCktPnN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigpOwog
ICAgICAgICBpZiAoIWN1c3RvbVByb3RvY29sTWFuYWdlcikKICAgICAgICAgICAgIHJldHVybjsK
IApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1Nl
cnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDAzNjApCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRy
eVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAg
fQogfTsKIAordGVtcGxhdGU8Pgordm9pZCBpbml0aWFsaXplQ2hpbGRQcm9jZXNzPE5ldHdvcmtQ
cm9jZXNzPihDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxOZXR3b3JrUHJvY2Vzcz4gbmV0d29ya1By
b2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAko
cmV2aXNpb24gMjQwMzYwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNiArMzMsMjUg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBSZWZQdHI8TmV0d29ya1Byb2Nlc3M+
IGdsb2JhbE5ldHdvcmtQcm9jZXNzOworCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc01haW4gZmluYWw6
IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CiBwdWJsaWM6CiAgICAgdm9pZCBwbGF0Zm9y
bUZpbmFsaXplKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIE5lZWRlZCB0byBkZXN0cm95
IHRoZSBTb3VwU2Vzc2lvbiBhbmQgU291cENvb2tpZUphciwgZS5nLiB0byBhdm9pZAogICAgICAg
ICAvLyBsZWFraW5nIFNRTGl0ZSB0ZW1wb3Jhcnkgam91cm5hbGluZyBmaWxlcy4KLSAgICAgICAg
TmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmNsZWFy
U291cE5ldHdvcmtTZXNzaW9uKCk7CisgICAgICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzLT5kZWZh
dWx0U3RvcmFnZVNlc3Npb24oKS5jbGVhclNvdXBOZXR3b3JrU2Vzc2lvbigpOwogICAgIH0KIH07
CiAKK3RlbXBsYXRlPD4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJvY2VzczxOZXR3b3JrUHJvY2Vz
cz4oQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TmV0d29ya1Byb2Nlc3M+IG5ldHdvcmtQcm9jZXNz
KFdURk1vdmUocGFyYW1ldGVycykpOworICAgIGdsb2JhbE5ldHdvcmtQcm9jZXNzID0gJm5ldHdv
cmtQcm9jZXNzLmdldCgpOworfQorICAgIAogaW50IE5ldHdvcmtQcm9jZXNzTWFpblVuaXgoaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5ldHdv
cmtQcm9jZXNzLCBOZXR3b3JrUHJvY2Vzc01haW4+KGFyZ2MsIGFyZ3YpOwpJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dpbi9OZXR3b3JrUHJvY2Vz
c01haW5XaW4uY3BwCShyZXZpc2lvbiAyNDAzNjApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dpbi9OZXR3b3JrUHJvY2Vzc01haW5XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordGVtcGxhdGU8Pgordm9pZCBp
bml0aWFsaXplQ2hpbGRQcm9jZXNzPE5ldHdvcmtQcm9jZXNzPihDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxOZXR3b3JrUHJvY2Vzcz4gbmV0d29ya1Byb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzKSk7
Cit9CisKIGludCBOZXR3b3JrUHJvY2Vzc01haW5XaW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQog
ewogICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nl
c3NNYWluQmFzZT4oYXJnYywgYXJndik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCShyZXZpc2lvbiAyNDAzNjApCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDEyIEBAIHBy
b3RlY3RlZDoKICAgICB4cGNfb2JqZWN0X3QgbV9pbml0aWFsaXplck1lc3NhZ2U7CiB9OwogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBYUENTZXJ2aWNlVHlwZT4KK3ZvaWQgaW5pdGlhbGl6ZUNoaWxkUHJv
Y2VzcyhDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQor
eworICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKFdURk1vdmUocGFy
YW1ldGVycykpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBYUENTZXJ2aWNlVHlwZSwgdHlwZW5h
bWUgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGVUeXBlPgogdm9pZCBYUENTZXJ2aWNlSW5p
dGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29i
amVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNz
YWdlKQogewpAQCAtMTE5LDcgKzEyNSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9IFhQQ1NlcnZpY2VUeXBlOjpwcm9j
ZXNzVHlwZTsKIAotICAgIFhQQ1NlcnZpY2VUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKHBh
cmFtZXRlcnMpOworICAgIGluaXRpYWxpemVDaGlsZFByb2Nlc3M8WFBDU2VydmljZVR5cGU+KFdU
Rk1vdmUocGFyYW1ldGVycykpOwogfQogCiBpbnQgWFBDU2VydmljZU1haW4oaW50LCBjb25zdCBj
aGFyKiopOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NNYWlu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvdW5peC9DaGlsZFByb2Nlc3NN
YWluLmgJKHJldmlzaW9uIDI0MDM2MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQ2hp
bGRQcm9jZXNzTWFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBDaGlsZFByb2Nlc3NN
YWluX2gKLSNkZWZpbmUgQ2hpbGRQcm9jZXNzTWFpbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCkBAIC0z
OCwxMiArMzcsMTggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYXJzZUNvbW1hbmRMaW5l
KGludCBhcmdjLCBjaGFyKiogYXJndik7CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtRmluYWxp
emUoKSB7IH0KIAotICAgIGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYgaW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJz
OyB9CisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgdGFrZUluaXRp
YWxpemF0aW9uUGFyYW1ldGVycygpIHsgcmV0dXJuIFdURk1vdmUobV9wYXJhbWV0ZXJzKTsgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIG1f
cGFyYW1ldGVyczsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENoaWxkUHJvY2Vzc1R5cGU+Cit2
b2lkIGluaXRpYWxpemVDaGlsZFByb2Nlc3MoQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKK3sKKyAgICBDaGlsZFByb2Nlc3NUeXBlOjpzaW5nbGV0b24o
KS5pbml0aWFsaXplKFdURk1vdmUocGFyYW1ldGVycykpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGlsZFByb2Nlc3NUeXBlLCB0eXBlbmFtZSBDaGlsZFByb2Nlc3NNYWluVHlwZT4KIGludCBD
aGlsZFByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKQEAgLTU3LDcgKzYyLDcg
QEAgaW50IENoaWxkUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcgogICAgIGlmICghY2hp
bGRNYWluLnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCiAgICAgICAgIHJldHVybiBFWElU
X0ZBSUxVUkU7CiAKLSAgICBDaGlsZFByb2Nlc3NUeXBlOjpzaW5nbGV0b24oKS5pbml0aWFsaXpl
KGNoaWxkTWFpbi5pbml0aWFsaXphdGlvblBhcmFtZXRlcnMoKSk7CisgICAgaW5pdGlhbGl6ZUNo
aWxkUHJvY2VzczxDaGlsZFByb2Nlc3NUeXBlPihjaGlsZE1haW4udGFrZUluaXRpYWxpemF0aW9u
UGFyYW1ldGVycygpKTsKICAgICBSdW5Mb29wOjpydW4oKTsKICAgICBjaGlsZE1haW4ucGxhdGZv
cm1GaW5hbGl6ZSgpOwogCkBAIC02NSw1ICs3MCwzIEBAIGludCBDaGlsZFByb2Nlc3NNYWluKGlu
dCBhcmdjLCBjaGFyKiogYXIKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBDaGlsZFByb2Nlc3NNYWluX2gK
</data>
<flag name="review"
          id="376677"
          type_id="1"
          status="+"
          setter="don.olmstead"
    />
          </attachment>
      

    </bug>

</bugzilla>