<?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>133706</bug_id>
          
          <creation_ts>2014-06-10 16:33:04 -0700</creation_ts>
          <short_desc>Improve enter and exit fullscreen transition by using two step transition.</short_desc>
          <delta_ts>2014-06-23 10:05:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014580</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-10 16:33:04 -0700</bug_when>
    <thetext>Improve enter and exit fullscreen transition by using two step transition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014581</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-10 16:33:47 -0700</bug_when>
    <thetext>radar://16878025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014592</commentid>
    <comment_count>2</comment_count>
      <attachid>232830</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-10 17:06:57 -0700</bug_when>
    <thetext>Created attachment 232830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015101</commentid>
    <comment_count>3</comment_count>
      <attachid>232830</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-06-12 06:26:21 -0700</bug_when>
    <thetext>Comment on attachment 232830
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:742
&gt; +    __block RefPtr&lt;WebVideoFullscreenInterfaceAVKit&gt; protect2(this);

Nit: You don&apos;t need the &quot;2&quot; on the variable name now that isn&apos;t in setExternalPlayback.

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:195
&gt; +    
&gt; +    dispatch_async(dispatch_get_main_queue(), ^{

No need to protect &quot;this&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015181</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-12 12:06:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 232830 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232830&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:742
&gt; &gt; +    __block RefPtr&lt;WebVideoFullscreenInterfaceAVKit&gt; protect2(this);
&gt; 
&gt; Nit: You don&apos;t need the &quot;2&quot; on the variable name now that isn&apos;t in setExternalPlayback.

Removed the 2.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:195
&gt; &gt; +    
&gt; &gt; +    dispatch_async(dispatch_get_main_queue(), ^{
&gt; 
&gt; No need to protect &quot;this&quot;?

Added a protect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015182</commentid>
    <comment_count>5</comment_count>
      <attachid>232971</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-12 12:08:36 -0700</bug_when>
    <thetext>Created attachment 232971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015557</commentid>
    <comment_count>6</comment_count>
      <attachid>232971</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-13 15:40:06 -0700</bug_when>
    <thetext>Comment on attachment 232971
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:156
&gt; +        _model-&gt;setVideoFullscreenLayer(nullptr);

nil if that&apos;s a CALayer*

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:792
&gt; +        [m_window setHidden:YES];
&gt; +        [m_window setRootViewController:nil];
&gt; +        [m_playerViewController setDelegate:nil];
&gt; +        [m_playerViewController setPlayerController:nil];
&gt; +        m_playerViewController = nil;
&gt; +        m_viewController = nil;
&gt; +        m_window = nil;
&gt; +        [m_videoLayer removeFromSuperlayer];
&gt; +        m_videoLayer = nil;
&gt; +        [m_videoLayerContainer removeFromSuperlayer];
&gt; +        [m_videoLayerContainer setPlayerViewController:nil];
&gt; +        m_videoLayerContainer = nil;

So much stuff.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:33
&gt; +    SetupFullscreenWithID(uint32_t videoLayerID, WebCore::IntRect initialRect)

Is this a GraphicsLayer::PlatformLayerID? If so, it needs to be 64-bit.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:121
&gt; +    

Blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016018</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-16 16:53:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 232971 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232971&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:156
&gt; &gt; +        _model-&gt;setVideoFullscreenLayer(nullptr);
&gt; 
&gt; nil if that&apos;s a CALayer*

It is a PlatformLayer, which I guess is close enough in an Obj-c file. Change.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:792
&gt; &gt; +        [m_window setHidden:YES];
&gt; &gt; +        [m_window setRootViewController:nil];
&gt; &gt; +        [m_playerViewController setDelegate:nil];
&gt; &gt; +        [m_playerViewController setPlayerController:nil];
&gt; &gt; +        m_playerViewController = nil;
&gt; &gt; +        m_viewController = nil;
&gt; &gt; +        m_window = nil;
&gt; &gt; +        [m_videoLayer removeFromSuperlayer];
&gt; &gt; +        m_videoLayer = nil;
&gt; &gt; +        [m_videoLayerContainer removeFromSuperlayer];
&gt; &gt; +        [m_videoLayerContainer setPlayerViewController:nil];
&gt; &gt; +        m_videoLayerContainer = nil;
&gt; 
&gt; So much stuff.

Sigh. Maybe a session object that cleans up all this implicitly in its destructor.

https://bugs.webkit.org/show_bug.cgi?id=133960

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:33
&gt; &gt; +    SetupFullscreenWithID(uint32_t videoLayerID, WebCore::IntRect initialRect)
&gt; 
&gt; Is this a GraphicsLayer::PlatformLayerID? If so, it needs to be 64-bit.

It is one of these:
uint32_t LayerHostingContext::contextID()
so it stays 32-bit.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:121
&gt; &gt; +    
&gt; 
&gt; Blank line.

Deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016021</commentid>
    <comment_count>8</comment_count>
      <attachid>233203</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-16 16:55:14 -0700</bug_when>
    <thetext>Created attachment 233203
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016272</commentid>
    <comment_count>9</comment_count>
      <attachid>233203</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-17 15:27:28 -0700</bug_when>
    <thetext>Comment on attachment 233203
Patch for landing

Rejecting attachment 233203 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 233203, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5873666126512128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016284</commentid>
    <comment_count>10</comment_count>
      <attachid>233263</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-06-17 15:53:51 -0700</bug_when>
    <thetext>Created attachment 233263
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016303</commentid>
    <comment_count>11</comment_count>
      <attachid>233263</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-17 16:33:44 -0700</bug_when>
    <thetext>Comment on attachment 233263
Patch for landing.

Clearing flags on attachment: 233263

Committed r170083: &lt;http://trac.webkit.org/changeset/170083&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232830</attachid>
            <date>2014-06-10 17:06:57 -0700</date>
            <delta_ts>2014-06-12 12:08:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133706-20140610170632.patch</filename>
            <type>text/plain</type>
            <size>24749</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmNmMzMmFhMDc4ZWI1
YmNiMzIwNzE4ZWY0MTRmZTBjMWNjYWYwZS4uNGY1ZjVjYTE5MjMxMWU1ZGI0MDQ5MWZhMDZkMTZi
OGNiNTYyOGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGVudGVyIGFu
ZCBleGl0IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBieSB1c2luZyB0d28gc3RlcCB0cmFuc2l0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNzA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc2V0dXBG
dWxsc2NyZWVuLCBjcmVhdGVzIHRoZSBmdWxsc2NyZWVuIHZpZXdzIHJlYWR5IHRvIHJlY2VpdmUg
dGhlIHZpZGVvIGxheWVyLgorICAgICAgICBPbmNlIHRoZXkgYXJlIGluIHBsYWNlLCBkaWRTZXR1
cEZ1bGxzY3JlZW4gd2lsbCBtb3ZlIHRoZSB2aWRlbyBsYXllciBpbnRvIHRoZSAKKyAgICAgICAg
bmV3IHZpZXcgaGllcmFyY2h5IGFuZCBpbml0aWF0ZSBlbnRlckZ1bGxzY3JlZW4gdG8gYW5pbWF0
ZS4KKworICAgICAgICBSZXZlcnNlIHByb2Nlc3MgZm9yIGV4aXQgZnVsbHNjcmVlbi4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGQgZXhwb3J0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgUmVm
YWN0b3IgaW50byBkaWRTZXR1cEZ1bGxzY3JlZW4uCisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIgZGlkU2V0dXBGdWxsc2NyZWVuXSk6CisgICAgICAgIE1vdmUgdGhlIHZp
ZGVvIGxheWVyIG9uY2UgZnVsbHNjcmVlbiBpcyByZWFkeSB0byByZWNlaXZlIGl0LgorICAgICAg
ICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGRpZEV4aXRGdWxsc2NyZWVuXSk6Cisg
ICAgICAgIE1vdmUgdGhlIHZpZGVvIGxheWVyIGJhY2sgaW50byB3ZSB0aGUgd2ViIHBhZ2UsIGFu
ZCBpbml0aWF0ZSBjbGVhbnVwLgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIGRpZENsZWFudXBGdWxsc2NyZWVuXSk6CisgICAgICAgIFJlZmFjdG9yZCBjbGVhbnVwIGZy
b20gZGlkRXhpdEZ1bGxzY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6IEFkZCBkZWxjYXJhdGlvbnMuCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbik6CisgICAg
ICAgIFJlZmFjdG9yZWQgZnJvbSBlbnRlckZ1bGxzY3JlZW4uIEJ1aWxkcyB2aWV3cyByZWFkeSB0
byByZWNlaXZlIHZpZGVvIGxheWVyLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGludG8gZnVsbHNj
cmVlbi4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGZyb20gZnVsbHNjcmVlbi4gQ2xlYW51cCBpcyBy
ZWZhY3RvcmVkIGludG8gY2xlYW51cEZ1bGxzY3JlZW4oKQorICAgICAgICAoV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgUmVmYWN0
b3JlZCBmcm9tIGV4aXRGdWxsc2NyZWVuKCksIHJlbW92ZXMgdmlld3MuCisKIDIwMTQtMDYtMDkg
IEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUwqTGlzdEVs
ZW1lbnQgd3JhcHBlcnMgaGF2ZSBjdXN0b20gZ2V0T3duUHJvcGVydHlTbG90KClzIGZvciBubyBn
b29kIHJlYXNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYmQyNjJkYjc4N2M4ZjcxNmY5N2YxZTBmNDZjY2E2
ZDYyZDNhNzg1Li41NjFhYzQ4YzJmMDVlZTY3MDJmMTA5ZDM5NDQwMmFhYjdiN2ZhYWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDYtMTAgIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVl
biB0cmFuc2l0aW9uIGJ5IHVzaW5nIHR3byBzdGVwIHRyYW5zaXRpb24uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM3MDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc2V0dXBGdWxsc2NyZWVuKCkv
ZGlkU2V0dXBGdWxsc2NyZWVuKCkgYW5kIGNsZWFudXBGdWxsc2NyZWVuKCkvZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKQorICAgICAgICB0byB0aGUgcHJveGllcy4gQW5kIHJlZmFjdG9yIGVudGVyL2V4
aXQgZnVsbHNjcmVlbiB0byBkbyBzb21lIG9mIHRoZSB3b3JrIGluIHNldHVwL2NsZWFudXAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
OgorICAgICAgICBBZGQgZm91ciBtZXRob2RzIG1lbnRpb25lZCBhYm92ZS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgQWRkIFNldHVwL0NsZWFudXAgZnVuY3Rpb25zLgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6
IGRvZXMgd2hhdCBlbnRlckZ1bGxzY3JlZW4gdXNlZCB0byBkby4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6IGZv
cndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZFNldHVwRnVsbHNjcmVlbik6IGZvcndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbldpdGhJRCk6IGNo
YW5nZWQgdG8gZW50ZXJGdWxsc2NyZWVuCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oOiBBZGQgZGlkU2V0dXAvZGlkQ2xlYW51cAorICAgICAgICAq
IFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IEFk
ZCBkaWRTZXR1cC9kaWRDbGVhbnVwCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbTogCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOiByZWZhY3RvcmVkLAorICAgICAgICBz
b21lIGltcGxlbWVudGF0aW9uIG1vdmVzIHRvIGRpZFNldHVwRnVsbHNjcmVlbi4KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKToK
KyAgICAgICAgTW92ZXMgdGhlIHZpZGVvIGxheWVyIG92ZXIgdG8gdGhlIGhvc3RlZCBsYXllciwg
YW5kIGluaXRpYXRlcyBmdWxsc2NyZWVuLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6IHJlZmFjdG9yZWQsCisgICAgICAgIHNv
bWUgaW1wbGVtZW50YXRpb24gbW92ZXMgdG8gZGlkQ2xlYW51cEZ1bGxzY3JlZW4sIGFuZCBpbml0
aWF0ZXMgY2xlYW51cC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICBGaW5hbCBjbGVhbnVwIHJlZmFjdG9y
ZWQgZnJvbSBkaWRFeGl0RnVsbHNjcmVlbigpCisKIDIwMTQtMDYtMDkgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkaWZmZXJlbnQgQXBwS2l0IEFQSSBm
b3IgYWxsIHNlcnZpY2VzIG1lbnVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGFmNzMxNWUzYTk1
NGY4ZDEyNTQ3Y2M4ZjY3OTM2NmE1OTZiZjkwZjEuLjM3YmNlMmQ1ZGIwMjZjNmU4Yjg4YmQxNTNi
NDQ0MjY2MTI0YTFkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMzkzLDcgKzMzOTMsOSBA
QCBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTBpbnZhbGlk
YXRlRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNl
dER1cmF0aW9uRWQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQxNGV4aXRGdWxsc2NyZWVuRU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKLV9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkVSN0NBTGF5
ZXJOU183SW50UmVjdEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2CitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFCitf
X1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdjbGVhbnVwRnVs
bHNjcmVlbkV2CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGltZVJhbmdlc0UKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOHNldFZpZGVvRGltZW5zaW9uc0ViZmYKIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOXNldEV4dGVybmFs
UGxheWJhY2tFYk5TXzI3V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlMjZFeHRlcm5hbFBsYXli
YWNrVGFyZ2V0VHlwZUVOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bQppbmRleCA2YTIzZjNhMjdhOGQwNTI4MTg2OWNkMmExYThjOTYxNTkxZTJkNjNhLi4wNTQ4MGJj
ZGRjNmIyMGM2YzVlMTMwMDcxNDgxZDJjZTVlN2ZiYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQubW0KQEAgLTYzLDE2ICs2MywyMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICNlbHNlCiAKIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciAoRnVsbHNj
cmVlbk9ic2VydmF0aW9uKQorLSAodm9pZClkaWRTZXR1cEZ1bGxzY3JlZW47CiAtICh2b2lkKWRp
ZEVudGVyRnVsbHNjcmVlbjsKIC0gKHZvaWQpZGlkRXhpdEZ1bGxzY3JlZW47CistICh2b2lkKWRp
ZENsZWFudXBGdWxsc2NyZWVuOwogQGVuZAogCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ2hhbmdlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIgewogICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIqIF90YXJnZXQ7CiBwdWJs
aWM6CiAgICAgdm9pZCBzZXRUYXJnZXQoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciogdGFy
Z2V0KSB7IF90YXJnZXQgPSB0YXJnZXQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0dXBGdWxs
c2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3RhcmdldCBkaWRTZXR1cEZ1bGxzY3JlZW5dOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgW190YXJnZXQgZGlk
RW50ZXJGdWxsc2NyZWVuXTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IG92ZXJyaWRlIHsgW190YXJnZXQgZGlkRXhpdEZ1bGxzY3JlZW5dOyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3RhcmdldCBkaWRDbGVhbnVw
RnVsbHNjcmVlbl07IH0KIH07CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyCkBAIC0xMTUsMTUgKzExOSwxMyBAQCBwdWJsaWM6CiAgICAgW3NlbGYgcmV0YWlu
XTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhpdEZ1bGxzY3JlZW46CiAgICAgCiAg
ICAgVU5VU0VEX1BBUkFNKHNjcmVlbik7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0gW0NB
TGF5ZXIgbGF5ZXJdOwogICAgIF9pbnRlcmZhY2UgPSBhZG9wdFJlZihuZXcgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQpOwogICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKCZfY2hhbmdlT2JzZXJ2ZXIpOwogICAgIF9tb2RlbCA9IGFkb3B0
UmVmKG5ldyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudCk7CiAgICAgX21vZGVs
LT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UoX2ludGVyZmFjZS5nZXQoKSk7CiAgICAg
X2ludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwoX21vZGVsLmdldCgpKTsKICAg
ICBfbW9kZWwtPnNldE1lZGlhRWxlbWVudChfbWVkaWFFbGVtZW50LmdldCgpKTsKLSAgICBfbW9k
ZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKF92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSk7
Ci0gICAgX2ludGVyZmFjZS0+ZW50ZXJGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIu
Z2V0KCksIF9tZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSk7CisgICAgX2ludGVyZmFjZS0+c2V0
dXBGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIF9tZWRpYUVsZW1lbnQt
PnNjcmVlblJlY3QoKSk7CiB9CiAKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW4KQEAgLTEzNyw2ICsx
MzksMTMgQEAgcHVibGljOgogICAgICAgICBfaW50ZXJmYWNlLT5yZXF1ZXN0SGlkZUFuZEV4aXRG
dWxsc2NyZWVuKCk7CiB9CiAKKy0gKHZvaWQpZGlkU2V0dXBGdWxsc2NyZWVuCit7CisgICAgX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOworICAgIF9tb2RlbC0+c2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpKTsKKyAgICBfaW50
ZXJmYWNlLT5lbnRlckZ1bGxzY3JlZW4oKTsKK30KKwogLSAodm9pZClkaWRFbnRlckZ1bGxzY3Jl
ZW4KIHsKIH0KQEAgLTE0NCw2ICsxNTMsMTQgQEAgcHVibGljOgogLSAodm9pZClkaWRFeGl0RnVs
bHNjcmVlbgogewogICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICBfbW9kZWwtPnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKG51bGxwdHIpOworICAgICAgICBfaW50ZXJmYWNlLT5jbGVhbnVwRnVs
bHNjcmVlbigpOworICAgIH0pOworfQorCistICh2b2lkKWRpZENsZWFudXBGdWxsc2NyZWVuCit7
CisgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsKG51bGxwdHIpOwogICAgICAgICBfbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZShudWxscHRyKTsKICAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3Jl
ZW5MYXllcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMDlmNTVk
OTJiN2Q1OTJjNDEzNDcwOGMxMmU5ZTllMDhkYjExMTA4YS4uMTBmM2QwNzU3OWNiYjQ0YzJhNzZj
MmJmZWE2M2NhMTQ1M2ZkODk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTQ5
LDggKzQ5LDEwIEBAIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOwogY2xhc3MgV2ViVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYlZp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKCkgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXR1cEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVl
bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgPSAwOwogfTsKICAgICAKIGNsYXNz
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0CkBAIC04NSw4ICs4NywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwg
RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXll
ciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXR1
cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3Qp
OworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpOworICAgIHZpcnR1YWwg
dm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggNDA5MDA4ZWY5NzQ5Yjk1MTlkN2JhOTU5
MGZlZmQzMGVmYmVkNTIyZS4uMmEwN2VhODFjZWU5MmFiYWUxOGVkZGY5MzRmYzg5ZGE5MmJlODhk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtNjg4LDcgKzY4OCw3IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldEV4dGVybmFsUGxheWJhY2so
Ym9vbCBlbmFibGVkLCBFeHRlcm5hCiAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lci5nZXQoKSBz
ZXRIaWRkZW46ZW5hYmxlZF07CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3Jl
OjpJbnRSZWN0IGluaXRpYWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIsIFdlYkNvcmU6
OkludFJlY3QgaW5pdGlhbFJlY3QpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCkBAIC03MTAsNiArNzEw
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2Ny
ZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciBzZXRWaWRlb1JlY3Q6dmlkZW9SZWN0XTsKIAogICAgICAgICBtX3BsYXllclZpZXdDb250
cm9sbGVyID0gYWRvcHROUyhbW2NsYXNzQVZQbGF5ZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhWaWRlb0xheWVyOm1fdmlkZW9MYXllckNvbnRhaW5lci5nZXQoKV0pOworICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOihBVlBsYXll
ckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAgICBbbV92
aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm1fcGxheWVyVmlld0Nv
bnRyb2xsZXIuZ2V0KCldOwpAQCAtNzI3LDQ2ICs3MjgsNDQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVv
TGF5ZXIKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZGlkTW92ZVRvUGFyZW50Vmll
d0NvbnRyb2xsZXI6bV92aWV3Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAKLSAgICAgICAgX19ibG9jayBS
ZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QyKHRoaXMpOwot
Ci0gICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0g
ICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5XaXRoQ29t
cGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKil7Ci0gICAgICAgICAgICAgICAgaWYgKG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7Ci0gICAgICAgICAgICAgICAg
cHJvdGVjdDIuY2xlYXIoKTsKLSAgICAgICAgICAgIH1dOwotICAgICAgICB9KTsKLQogICAgICAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCisgICAgICAgIAorICAgICAgICBpZiAobV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci0+ZGlkU2V0dXBGdWxsc2NyZWVuKCk7CisgICAgICAgIAogICAgICAgICBwcm90ZWN0LmNs
ZWFyKCk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QyKHRoaXMpOworICAgIAorICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIFttX3BsYXllclZp
ZXdDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0ws
IE5TRXJyb3IqKQorICAgICAgICB7CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKKyAgICAgICAgICAgIGlmIChtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICBwcm90ZWN0Mi5jbGVh
cigpOworICAgICAgICB9XTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3Qp
CiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+
IHByb3RlY3QodGhpcyk7Ci0KKyAgICAKICAgICBtX3BsYXllckNvbnRyb2xsZXIuY2xlYXIoKTsK
ICAgICAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewor
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6
Tk9dOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XS5mcmFtZSA9IGZpbmFs
UmVjdDsKICAgICAgICAgaWYgKFttX3ZpZGVvTGF5ZXJDb250YWluZXIgdmlkZW9MYXllckdyYXZp
dHldICE9IEFWVmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3BlY3QpCiAgICAgICAgICAgICBbbV92
aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvTGF5ZXJHcmF2aXR5OkFWVmlkZW9MYXllckdyYXZp
dHlSZXNpemVBc3BlY3RdOwotICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVs
bFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKXsKLSAgICAgICAg
ICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKLSAgICAgICAgICAgIFttX3dpbmRvdyBzZXRS
b290Vmlld0NvbnRyb2xsZXI6bmlsXTsKLSAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9s
bGVyIHNldERlbGVnYXRlOm5pbF07Ci0gICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07Ci0gICAgICAgICAgICBtX3BsYXllclZpZXdDb250
cm9sbGVyID0gbmlsOwotICAgICAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IG5pbDsKLSAgICAg
ICAgICAgIG1fd2luZG93ID0gbmlsOwotICAgICAgICAgICAgW21fdmlkZW9MYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07Ci0gICAgICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBuaWw7Ci0gICAgICAg
ICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICAg
ICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6bmls
XTsKLSAgICAgICAgICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9IG5pbDsKLQorICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wsIE5TRXJyb3IqKQorICAgICAgICB7CisgICAgICAgICAgICBbW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltjbGFzc1VJQ29sb3IgY2xlYXJD
b2xvcl1dOwogICAgICAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQogICAg
ICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVl
bigpOwogICAgICAgICAgICAgcHJvdGVjdC5jbGVhcigpOwpAQCAtNzc0LDYgKzc3MywzMCBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihXZWJD
b3JlOjpJbnRSZWN0IGZpbmFsUmVjdAogICAgIH0pOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigpCit7CisgICAgX19ibG9jayBS
ZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7Cisg
ICAgCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAg
ICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOworICAgICAgICBbbV93aW5kb3cgc2V0Um9v
dFZpZXdDb250cm9sbGVyOm5pbF07CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNl
dERlbGVnYXRlOm5pbF07CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXll
ckNvbnRyb2xsZXI6bmlsXTsKKyAgICAgICAgbV9wbGF5ZXJWaWV3Q29udHJvbGxlciA9IG5pbDsK
KyAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IG5pbDsKKyAgICAgICAgbV93aW5kb3cgPSBuaWw7
CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBt
X3ZpZGVvTGF5ZXIgPSBuaWw7CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgcmVtb3Zl
RnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXll
clZpZXdDb250cm9sbGVyOm5pbF07CisgICAgICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9IG5p
bDsKKyAgICAgICAgCisgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAg
ICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVhbnVwRnVsbHNjcmVl
bigpOworICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgfSk7Cit9CisKIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmludmFsaWRhdGUoKQogewogICAgIG1fcGxheWVy
Q29udHJvbGxlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggNmY4NzNh
MGM2NzYzZmJjZjE0MWY1NmQyZTQxNTQ5MzM5NjIxYjJhYi4uZGNmOWExNzZkNTI4NDVlZTIyY2Rj
MmViNGRhOGRhM2VkYmMxMTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC01NSwx
MyArNTUsMTUgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gVHJhbnNsYXRlIHRvIEZ1bGxzY3JlZW5JbnRlcmZhY2UKLSAgICB2b2lkIGVudGVyRnVsbHNj
cmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCk7CisgICAg
dm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QsIFdlYkNvcmU6OkludFJlY3QgaW5p
dGlhbFJlY3QpOwogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6
cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrUHJv
cGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6
ZWREZXZpY2VOYW1lKTsKICAgICAKICAgICAvLyBGdWxsc2NyZWVuIE9ic2VydmVyCi0gICAgdmly
dHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRl
ckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3Jl
ZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBv
dmVycmlkZTsKICAgICAKICAgICAvLyBGdWxsc2NyZWVuTW9kZWwKICAgICB2aXJ0dWFsIHZvaWQg
cGxheSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA1ODAxZmY2ZGU0YmE2YjFiYmU2MjU5MTA2MmRlZDM4YjU1ZmE0NGY1Li42YWZh
NDgxYzg4NDAwOGJjNmVhZDk4NTg4OTRkNzYxMWY5NjkzM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzAsNyArMzAsOSBAQCBtZXNzYWdlcyAt
PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEV4dGVybmFsUGxheWJh
Y2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwgU3RyaW5nIGxv
Y2FsaXplZERldmljZU5hbWUpOwogICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAg
ICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKLSAgICBFbnRlckZ1bGxzY3Jl
ZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0KQorICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCisgICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBF
eGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKKyAgICBDbGVhbnVwRnVs
bHNjcmVlbigpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggMWZi
OGYzZmU4ZTEzNmYyMjRjZDY4MTExYWJjZDY2MDgzZGFiMTMzMS4uMWQ4NmEzYzQ1MTFmMDcxNDFk
ZWI5N2FmYTM4YmJiMjc4ZDdiMDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAg
LTcxLDExICs3MSwxMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52
YWxpZGF0ZSgpCiAgICAgbV9sYXllckhvc3QuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRl
b0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVv
TGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKIHsKICAgICBBU1NFUlQodmlk
ZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxheWVyKHZpZGVvTGF5
ZXJJRCk7Ci0gICAgZW50ZXJGdWxsc2NyZWVuKCptX2xheWVySG9zdC5nZXQoKSwgaW5pdGlhbFJl
Y3QpOworICAgIHNldHVwRnVsbHNjcmVlbigqbV9sYXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0
KTsKIH0KICAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVr
YWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mIHJhbmdl
cykKQEAgLTExMiw2ICsxMTIsMTcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBbbV9sYXllckhvc3QgcmVtb3ZlRnJvbVN1cGVy
bGF5ZXJdOwogICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9CisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkQ2xlYW51
cEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKKyAgICAKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRTZXR1cEZ1bGxzY3JlZW4oKQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkU2V0dXBG
dWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAppbmRleCAzNDlkZDJmMWViZjlmNmU1MmRkOGMzODAwNzIyMzgyODI3MmFjNGFmLi5lYmM5ZGI5
N2Y2ZWUxNTM2OTE4MDkwMmVlM2RiNjBmY2FmNjBhYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBA
IC03Niw4ICs3NiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEV4dGVybmFs
UGxheWJhY2soYm9vbCBlbmFibGVkLCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2U6OkV4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJp
ZGU7CiAKICAgICAvLyBhZGRpdGlvbmFsIGluY29taW5nCisgICAgdmlydHVhbCB2b2lkIGRpZFNl
dHVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdy
YXZpdHlFbnVtKHVuc2lnbmVkKTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhOTliYjFlZDdlMmI2OGJhYmM4Njc1
ZTM3ZTI3MGViY2MwMWY1Nzg0Li44YjRkOGVmNWI4MThiODRlMjYzMjAwZTc3ZTY4YzM3OTdmYzk2
ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMzLDggKzMz
LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIEJlZ2lu
U2Nhbm5pbmdCYWNrd2FyZCgpCiAgICAgRW5kU2Nhbm5pbmcoKQogICAgIFJlcXVlc3RFeGl0RnVs
bHNjcmVlbigpCisgICAgRGlkU2V0dXBGdWxsc2NyZWVuKCkKICAgICBEaWRFeGl0RnVsbHNjcmVl
bigpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKCkKKyAgICBEaWRDbGVhbnVwRnVsbHNjcmVlbigp
CiAgICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMpCiAgICAg
U2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgU2VsZWN0QXVk
aW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDAx
Nzk3M2NjM2IwZjViZmQ5OGQyMDU4N2ZhZGZmZDdmMWQzNTU3MDkuLmJlZDQzNjQ5NDFkZTExYzVk
NGJlZTlmOWNjNTkyZDlhMTNiNDU1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjIsMjgg
KzIyLDI4IEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaCIKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKLSNp
bmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0V2
ZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVu
ZGVyTGF5ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyQmFja2luZy5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RpbWVSYW5nZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dl
YkNvcmVUaHJlYWRSdW4uaD4KKyNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lt
cG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgorI2ltcG9ydCAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0
aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0V2ZW50
TmFtZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0hUTUxWaWRlb0VsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckxheWVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
ckxheWVyQmFja2luZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CisjaW1wb3J0
IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVSYW5nZXMuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtOTQsMTUgKzk0LDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgbV9pc0FuaW1hdGluZyA9
IHRydWU7CiAgICAgc2V0TWVkaWFFbGVtZW50KHRvSFRNTE1lZGlhRWxlbWVudChub2RlKSk7CiAK
LSAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOwotI2lmbmRl
ZiBOREVCVUcKLSAgICBbdmlkZW9MYXllciBzZXROYW1lOkAiV2ViIHZpZGVvIGZ1bGxzY3JlZW4g
bWFuYWdlciBsYXllciJdOwotI2VuZGlmCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5
ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotICAg
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIpOwotICAgIHNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIpOwotCi0gICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbldp
dGhJRChtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpLCBzY3JlZW5SZWN0Rm9yTm9k
ZShub2RlKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIAorICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRo
SUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSwgc2NyZWVuUmVjdEZvck5vZGUo
bm9kZSkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKQEAgLTE2NSw3ICsxNTks
MTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRFeHRlcm5hbFBsYXliYWNr
KGJvb2wgZW5hYmxlZCwgV2ViVmlkZW9GdWxsc2MKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0RXh0ZXJuYWxQbGF5YmFja1By
b3BlcnRpZXMoZW5hYmxlZCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhcmdldFR5cGUpLCBsb2Nh
bGl6ZWREZXZpY2VOYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9Ci0KKyAgICAKK3ZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKK3sKKyAgICBQbGF0
Zm9ybUxheWVyKiB2aWRlb0xheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOworI2lmbmRlZiBOREVCVUcK
KyAgICBbdmlkZW9MYXllciBzZXROYW1lOkAiV2ViIHZpZGVvIGZ1bGxzY3JlZW4gbWFuYWdlciBs
YXllciJdOworI2VuZGlmCisgICAgCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290
TGF5ZXIodmlkZW9MYXllcik7CisgICAgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXll
cik7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OkVudGVyRnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIHsKICAg
ICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7CkBAIC0xODQsMTMgKzE5MCwyMCBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAKIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewotICAgIG1faXNBbmlt
YXRpbmcgPSBmYWxzZTsKLSAgICBtX2lzRnVsbHNjcmVlbiA9IGZhbHNlOwotCi0gICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobnVsbHB0cik7Ci0gICAgbV9sYXllckhvc3Rp
bmdDb250ZXh0ID0gbnVsbHB0cjsKICAgICBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihudWxscHRy
KTsKLQorICAgIAorICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIp
OworICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBudWxscHRyOworICAgICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51
cEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgfSk7Cit9CisgICAgCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkKK3sKKyAg
ICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7CisgICAgbV9pc0Z1bGxzY3JlZW4gPSBmYWxzZTsKKyAg
ICAKICAgICBzZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7CiAKICAgICBpZiAoIW1fdGFyZ2V0SXNG
dWxsc2NyZWVuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232971</attachid>
            <date>2014-06-12 12:08:36 -0700</date>
            <delta_ts>2014-06-13 15:40:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133706-20140612120811.patch</filename>
            <type>text/plain</type>
            <size>24839</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmNmMzMmFhMDc4ZWI1
YmNiMzIwNzE4ZWY0MTRmZTBjMWNjYWYwZS4uNGY1ZjVjYTE5MjMxMWU1ZGI0MDQ5MWZhMDZkMTZi
OGNiNTYyOGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGVudGVyIGFu
ZCBleGl0IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBieSB1c2luZyB0d28gc3RlcCB0cmFuc2l0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNzA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc2V0dXBG
dWxsc2NyZWVuLCBjcmVhdGVzIHRoZSBmdWxsc2NyZWVuIHZpZXdzIHJlYWR5IHRvIHJlY2VpdmUg
dGhlIHZpZGVvIGxheWVyLgorICAgICAgICBPbmNlIHRoZXkgYXJlIGluIHBsYWNlLCBkaWRTZXR1
cEZ1bGxzY3JlZW4gd2lsbCBtb3ZlIHRoZSB2aWRlbyBsYXllciBpbnRvIHRoZSAKKyAgICAgICAg
bmV3IHZpZXcgaGllcmFyY2h5IGFuZCBpbml0aWF0ZSBlbnRlckZ1bGxzY3JlZW4gdG8gYW5pbWF0
ZS4KKworICAgICAgICBSZXZlcnNlIHByb2Nlc3MgZm9yIGV4aXQgZnVsbHNjcmVlbi4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGQgZXhwb3J0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgUmVm
YWN0b3IgaW50byBkaWRTZXR1cEZ1bGxzY3JlZW4uCisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIgZGlkU2V0dXBGdWxsc2NyZWVuXSk6CisgICAgICAgIE1vdmUgdGhlIHZp
ZGVvIGxheWVyIG9uY2UgZnVsbHNjcmVlbiBpcyByZWFkeSB0byByZWNlaXZlIGl0LgorICAgICAg
ICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGRpZEV4aXRGdWxsc2NyZWVuXSk6Cisg
ICAgICAgIE1vdmUgdGhlIHZpZGVvIGxheWVyIGJhY2sgaW50byB3ZSB0aGUgd2ViIHBhZ2UsIGFu
ZCBpbml0aWF0ZSBjbGVhbnVwLgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIGRpZENsZWFudXBGdWxsc2NyZWVuXSk6CisgICAgICAgIFJlZmFjdG9yZCBjbGVhbnVwIGZy
b20gZGlkRXhpdEZ1bGxzY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6IEFkZCBkZWxjYXJhdGlvbnMuCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbik6CisgICAg
ICAgIFJlZmFjdG9yZWQgZnJvbSBlbnRlckZ1bGxzY3JlZW4uIEJ1aWxkcyB2aWV3cyByZWFkeSB0
byByZWNlaXZlIHZpZGVvIGxheWVyLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGludG8gZnVsbHNj
cmVlbi4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGZyb20gZnVsbHNjcmVlbi4gQ2xlYW51cCBpcyBy
ZWZhY3RvcmVkIGludG8gY2xlYW51cEZ1bGxzY3JlZW4oKQorICAgICAgICAoV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgUmVmYWN0
b3JlZCBmcm9tIGV4aXRGdWxsc2NyZWVuKCksIHJlbW92ZXMgdmlld3MuCisKIDIwMTQtMDYtMDkg
IEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUwqTGlzdEVs
ZW1lbnQgd3JhcHBlcnMgaGF2ZSBjdXN0b20gZ2V0T3duUHJvcGVydHlTbG90KClzIGZvciBubyBn
b29kIHJlYXNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYmQyNjJkYjc4N2M4ZjcxNmY5N2YxZTBmNDZjY2E2
ZDYyZDNhNzg1Li41NjFhYzQ4YzJmMDVlZTY3MDJmMTA5ZDM5NDQwMmFhYjdiN2ZhYWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDYtMTAgIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVl
biB0cmFuc2l0aW9uIGJ5IHVzaW5nIHR3byBzdGVwIHRyYW5zaXRpb24uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM3MDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc2V0dXBGdWxsc2NyZWVuKCkv
ZGlkU2V0dXBGdWxsc2NyZWVuKCkgYW5kIGNsZWFudXBGdWxsc2NyZWVuKCkvZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKQorICAgICAgICB0byB0aGUgcHJveGllcy4gQW5kIHJlZmFjdG9yIGVudGVyL2V4
aXQgZnVsbHNjcmVlbiB0byBkbyBzb21lIG9mIHRoZSB3b3JrIGluIHNldHVwL2NsZWFudXAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
OgorICAgICAgICBBZGQgZm91ciBtZXRob2RzIG1lbnRpb25lZCBhYm92ZS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgQWRkIFNldHVwL0NsZWFudXAgZnVuY3Rpb25zLgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6
IGRvZXMgd2hhdCBlbnRlckZ1bGxzY3JlZW4gdXNlZCB0byBkby4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6IGZv
cndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZFNldHVwRnVsbHNjcmVlbik6IGZvcndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbldpdGhJRCk6IGNo
YW5nZWQgdG8gZW50ZXJGdWxsc2NyZWVuCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oOiBBZGQgZGlkU2V0dXAvZGlkQ2xlYW51cAorICAgICAgICAq
IFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IEFk
ZCBkaWRTZXR1cC9kaWRDbGVhbnVwCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbTogCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOiByZWZhY3RvcmVkLAorICAgICAgICBz
b21lIGltcGxlbWVudGF0aW9uIG1vdmVzIHRvIGRpZFNldHVwRnVsbHNjcmVlbi4KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKToK
KyAgICAgICAgTW92ZXMgdGhlIHZpZGVvIGxheWVyIG92ZXIgdG8gdGhlIGhvc3RlZCBsYXllciwg
YW5kIGluaXRpYXRlcyBmdWxsc2NyZWVuLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6IHJlZmFjdG9yZWQsCisgICAgICAgIHNv
bWUgaW1wbGVtZW50YXRpb24gbW92ZXMgdG8gZGlkQ2xlYW51cEZ1bGxzY3JlZW4sIGFuZCBpbml0
aWF0ZXMgY2xlYW51cC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICBGaW5hbCBjbGVhbnVwIHJlZmFjdG9y
ZWQgZnJvbSBkaWRFeGl0RnVsbHNjcmVlbigpCisKIDIwMTQtMDYtMDkgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkaWZmZXJlbnQgQXBwS2l0IEFQSSBm
b3IgYWxsIHNlcnZpY2VzIG1lbnVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGFmNzMxNWUzYTk1
NGY4ZDEyNTQ3Y2M4ZjY3OTM2NmE1OTZiZjkwZjEuLjM3YmNlMmQ1ZGIwMjZjNmU4Yjg4YmQxNTNi
NDQ0MjY2MTI0YTFkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMzkzLDcgKzMzOTMsOSBA
QCBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTBpbnZhbGlk
YXRlRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNl
dER1cmF0aW9uRWQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQxNGV4aXRGdWxsc2NyZWVuRU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKLV9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkVSN0NBTGF5
ZXJOU183SW50UmVjdEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2CitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFCitf
X1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTdjbGVhbnVwRnVs
bHNjcmVlbkV2CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MTdzZXRTZWVrYWJsZVJhbmdlc0VSS05TXzEwVGltZVJhbmdlc0UKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOHNldFZpZGVvRGltZW5zaW9uc0ViZmYKIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxOXNldEV4dGVybmFs
UGxheWJhY2tFYk5TXzI3V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlMjZFeHRlcm5hbFBsYXli
YWNrVGFyZ2V0VHlwZUVOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bQppbmRleCA2YTIzZjNhMjdhOGQwNTI4MTg2OWNkMmExYThjOTYxNTkxZTJkNjNhLi4wNTQ4MGJj
ZGRjNmIyMGM2YzVlMTMwMDcxNDgxZDJjZTVlN2ZiYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQubW0KQEAgLTYzLDE2ICs2MywyMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICNlbHNlCiAKIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciAoRnVsbHNj
cmVlbk9ic2VydmF0aW9uKQorLSAodm9pZClkaWRTZXR1cEZ1bGxzY3JlZW47CiAtICh2b2lkKWRp
ZEVudGVyRnVsbHNjcmVlbjsKIC0gKHZvaWQpZGlkRXhpdEZ1bGxzY3JlZW47CistICh2b2lkKWRp
ZENsZWFudXBGdWxsc2NyZWVuOwogQGVuZAogCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ2hhbmdlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIgewogICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIqIF90YXJnZXQ7CiBwdWJs
aWM6CiAgICAgdm9pZCBzZXRUYXJnZXQoV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciogdGFy
Z2V0KSB7IF90YXJnZXQgPSB0YXJnZXQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0dXBGdWxs
c2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3RhcmdldCBkaWRTZXR1cEZ1bGxzY3JlZW5dOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgW190YXJnZXQgZGlk
RW50ZXJGdWxsc2NyZWVuXTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IG92ZXJyaWRlIHsgW190YXJnZXQgZGlkRXhpdEZ1bGxzY3JlZW5dOyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3RhcmdldCBkaWRDbGVhbnVw
RnVsbHNjcmVlbl07IH0KIH07CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyCkBAIC0xMTUsMTUgKzExOSwxMyBAQCBwdWJsaWM6CiAgICAgW3NlbGYgcmV0YWlu
XTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhpdEZ1bGxzY3JlZW46CiAgICAgCiAg
ICAgVU5VU0VEX1BBUkFNKHNjcmVlbik7Ci0gICAgX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0gW0NB
TGF5ZXIgbGF5ZXJdOwogICAgIF9pbnRlcmZhY2UgPSBhZG9wdFJlZihuZXcgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQpOwogICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKCZfY2hhbmdlT2JzZXJ2ZXIpOwogICAgIF9tb2RlbCA9IGFkb3B0
UmVmKG5ldyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudCk7CiAgICAgX21vZGVs
LT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UoX2ludGVyZmFjZS5nZXQoKSk7CiAgICAg
X2ludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwoX21vZGVsLmdldCgpKTsKICAg
ICBfbW9kZWwtPnNldE1lZGlhRWxlbWVudChfbWVkaWFFbGVtZW50LmdldCgpKTsKLSAgICBfbW9k
ZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKF92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSk7
Ci0gICAgX2ludGVyZmFjZS0+ZW50ZXJGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIu
Z2V0KCksIF9tZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSk7CisgICAgX2ludGVyZmFjZS0+c2V0
dXBGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIF9tZWRpYUVsZW1lbnQt
PnNjcmVlblJlY3QoKSk7CiB9CiAKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW4KQEAgLTEzNyw2ICsx
MzksMTMgQEAgcHVibGljOgogICAgICAgICBfaW50ZXJmYWNlLT5yZXF1ZXN0SGlkZUFuZEV4aXRG
dWxsc2NyZWVuKCk7CiB9CiAKKy0gKHZvaWQpZGlkU2V0dXBGdWxsc2NyZWVuCit7CisgICAgX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOworICAgIF9tb2RlbC0+c2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpKTsKKyAgICBfaW50
ZXJmYWNlLT5lbnRlckZ1bGxzY3JlZW4oKTsKK30KKwogLSAodm9pZClkaWRFbnRlckZ1bGxzY3Jl
ZW4KIHsKIH0KQEAgLTE0NCw2ICsxNTMsMTQgQEAgcHVibGljOgogLSAodm9pZClkaWRFeGl0RnVs
bHNjcmVlbgogewogICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICBfbW9kZWwtPnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKG51bGxwdHIpOworICAgICAgICBfaW50ZXJmYWNlLT5jbGVhbnVwRnVs
bHNjcmVlbigpOworICAgIH0pOworfQorCistICh2b2lkKWRpZENsZWFudXBGdWxsc2NyZWVuCit7
CisgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsKG51bGxwdHIpOwogICAgICAgICBfbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZShudWxscHRyKTsKICAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3Jl
ZW5MYXllcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggMDlmNTVk
OTJiN2Q1OTJjNDEzNDcwOGMxMmU5ZTllMDhkYjExMTA4YS4uMTBmM2QwNzU3OWNiYjQ0YzJhNzZj
MmJmZWE2M2NhMTQ1M2ZkODk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTQ5
LDggKzQ5LDEwIEBAIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOwogY2xhc3MgV2ViVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYlZp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKCkgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXR1cEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVl
bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgPSAwOwogfTsKICAgICAKIGNsYXNz
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0CkBAIC04NSw4ICs4NywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwg
RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXll
ciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXR1
cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3Qp
OworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpOworICAgIHZpcnR1YWwg
dm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggNDA5MDA4ZWY5NzQ5Yjk1MTlkN2JhOTU5
MGZlZmQzMGVmYmVkNTIyZS4uZGVlYTY1N2QyYjcyZTEzNjIwYWU3MjU1YWJlZjk5YjkyZWEwNmNj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtNjg4LDcgKzY4OCw3IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldEV4dGVybmFsUGxheWJhY2so
Ym9vbCBlbmFibGVkLCBFeHRlcm5hCiAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lci5nZXQoKSBz
ZXRIaWRkZW46ZW5hYmxlZF07CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3Jl
OjpJbnRSZWN0IGluaXRpYWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIsIFdlYkNvcmU6
OkludFJlY3QgaW5pdGlhbFJlY3QpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCkBAIC03MTAsNiArNzEw
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2Ny
ZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciBzZXRWaWRlb1JlY3Q6dmlkZW9SZWN0XTsKIAogICAgICAgICBtX3BsYXllclZpZXdDb250
cm9sbGVyID0gYWRvcHROUyhbW2NsYXNzQVZQbGF5ZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhWaWRlb0xheWVyOm1fdmlkZW9MYXllckNvbnRhaW5lci5nZXQoKV0pOworICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOihBVlBsYXll
ckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAgICBbbV92
aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm1fcGxheWVyVmlld0Nv
bnRyb2xsZXIuZ2V0KCldOwpAQCAtNzI3LDQ2ICs3MjgsNDQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVv
TGF5ZXIKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZGlkTW92ZVRvUGFyZW50Vmll
d0NvbnRyb2xsZXI6bV92aWV3Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFtbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAKLSAgICAgICAgX19ibG9jayBS
ZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QyKHRoaXMpOwot
Ci0gICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0g
ICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5XaXRoQ29t
cGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKil7Ci0gICAgICAgICAgICAgICAgaWYgKG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7Ci0gICAgICAgICAgICAgICAg
cHJvdGVjdDIuY2xlYXIoKTsKLSAgICAgICAgICAgIH1dOwotICAgICAgICB9KTsKLQogICAgICAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCisgICAgICAgIAorICAgICAgICBpZiAobV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci0+ZGlkU2V0dXBGdWxsc2NyZWVuKCk7CisgICAgICAgIAogICAgICAgICBwcm90ZWN0LmNs
ZWFyKCk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CisgICAgCisgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwg
TlNFcnJvciopCisgICAgICAgIHsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVy
IHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgaWYgKG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyLT5kaWRFbnRlckZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgIHByb3RlY3QuY2xlYXIo
KTsKKyAgICAgICAgfV07CisgICAgfSk7Cit9CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQog
ewogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBw
cm90ZWN0KHRoaXMpOwotCisgICAgCiAgICAgbV9wbGF5ZXJDb250cm9sbGVyLmNsZWFyKCk7CiAg
ICAgCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAg
ICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOk5P
XTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBmaW5hbFJl
Y3Q7CiAgICAgICAgIGlmIChbbV92aWRlb0xheWVyQ29udGFpbmVyIHZpZGVvTGF5ZXJHcmF2aXR5
XSAhPSBBVlZpZGVvTGF5ZXJHcmF2aXR5UmVzaXplQXNwZWN0KQogICAgICAgICAgICAgW21fdmlk
ZW9MYXllckNvbnRhaW5lciBzZXRWaWRlb0xheWVyR3Jhdml0eTpBVlZpZGVvTGF5ZXJHcmF2aXR5
UmVzaXplQXNwZWN0XTsKLSAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZXhpdEZ1bGxT
Y3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKil7Ci0gICAgICAgICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107Ci0gICAgICAgICAgICBbbV93aW5kb3cgc2V0Um9v
dFZpZXdDb250cm9sbGVyOm5pbF07Ci0gICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIg
c2V0UGxheWVyQ29udHJvbGxlcjpuaWxdOwotICAgICAgICAgICAgbV9wbGF5ZXJWaWV3Q29udHJv
bGxlciA9IG5pbDsKLSAgICAgICAgICAgIG1fdmlld0NvbnRyb2xsZXIgPSBuaWw7Ci0gICAgICAg
ICAgICBtX3dpbmRvdyA9IG5pbDsKLSAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJv
bVN1cGVybGF5ZXJdOwotICAgICAgICAgICAgbV92aWRlb0xheWVyID0gbmlsOwotICAgICAgICAg
ICAgW21fdmlkZW9MYXllckNvbnRhaW5lciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0gICAgICAg
ICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm5pbF07
Ci0gICAgICAgICAgICBtX3ZpZGVvTGF5ZXJDb250YWluZXIgPSBuaWw7Ci0KKyAgICAgICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6
XihCT09MLCBOU0Vycm9yKikKKyAgICAgICAgeworICAgICAgICAgICAgW1ttX3BsYXllclZpZXdD
b250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbY2xhc3NVSUNvbG9yIGNsZWFyQ29s
b3JdXTsKICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKICAgICAg
ICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4o
KTsKICAgICAgICAgICAgIHByb3RlY3QuY2xlYXIoKTsKQEAgLTc3NCw2ICs3NzMsMzAgQEAgdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29y
ZTo6SW50UmVjdCBmaW5hbFJlY3QKICAgICB9KTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQoreworICAgIF9fYmxvY2sgUmVm
UHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOworICAg
IAorICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAg
ICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKKyAgICAgICAgW21fd2luZG93IHNldFJvb3RW
aWV3Q29udHJvbGxlcjpuaWxdOworICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRE
ZWxlZ2F0ZTpuaWxdOworICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJD
b250cm9sbGVyOm5pbF07CisgICAgICAgIG1fcGxheWVyVmlld0NvbnRyb2xsZXIgPSBuaWw7Cisg
ICAgICAgIG1fdmlld0NvbnRyb2xsZXIgPSBuaWw7CisgICAgICAgIG1fd2luZG93ID0gbmlsOwor
ICAgICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAgbV92
aWRlb0xheWVyID0gbmlsOworICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHJlbW92ZUZy
b21TdXBlcmxheWVyXTsKKyAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRQbGF5ZXJW
aWV3Q29udHJvbGxlcjpuaWxdOworICAgICAgICBtX3ZpZGVvTGF5ZXJDb250YWluZXIgPSBuaWw7
CisgICAgICAgIAorICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAg
ICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
KTsKKyAgICAgICAgcHJvdGVjdC5jbGVhcigpOworICAgIH0pOworfQorCiB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKCkKIHsKICAgICBtX3BsYXllckNv
bnRyb2xsZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDZmODczYTBj
Njc2M2ZiY2YxNDFmNTZkMmU0MTU0OTMzOTYyMWIyYWIuLmRjZjlhMTc2ZDUyODQ1ZWUyMmNkYzJl
YjRkYThkYTNlZGJjMTE0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNTUsMTMg
KzU1LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8v
IFRyYW5zbGF0ZSB0byBGdWxsc2NyZWVuSW50ZXJmYWNlCi0gICAgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW5XaXRoSUQodWludDMyX3QsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpOworICAgIHZv
aWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRp
YWxSZWN0KTsKICAgICB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBh
aXI8ZG91YmxlLCBkb3VibGU+PiYpOwogICAgIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFja1Byb3Bl
cnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVk
RGV2aWNlTmFtZSk7CiAgICAgCiAgICAgLy8gRnVsbHNjcmVlbiBPYnNlcnZlcgotICAgIHZpcnR1
YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJG
dWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVu
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgb3Zl
cnJpZGU7CiAgICAgCiAgICAgLy8gRnVsbHNjcmVlbk1vZGVsCiAgICAgdmlydHVhbCB2b2lkIHBs
YXkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggNTgwMWZmNmRlNGJhNmIxYmJlNjI1OTEwNjJkZWQzOGI1NWZhNDRmNS4uNmFmYTQ4
MWM4ODQwMDhiYzZlYWQ5ODU4ODk0ZDc2MTFmOTY5MzNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTMwLDcgKzMwLDkgQEAgbWVzc2FnZXMgLT4g
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRFeHRlcm5hbFBsYXliYWNr
UHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmluZyBsb2Nh
bGl6ZWREZXZpY2VOYW1lKTsKICAgICBTZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCiAgICAg
U2V0UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCi0gICAgRW50ZXJGdWxsc2NyZWVu
V2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCkKKyAgICBTZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJD
b3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0KQorICAgIEVudGVyRnVsbHNjcmVlbigpCiAgICAgRXhp
dEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCisgICAgQ2xlYW51cEZ1bGxz
Y3JlZW4oKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDFmYjhm
M2ZlOGUxMzZmMjI0Y2Q2ODExMWFiY2Q2NjA4M2RhYjEzMzEuLjFkODZhM2M0NTExZjA3MTQxZGVi
OTdhZmEzOGJiYjI3OGQ3YjA0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC03
MSwxMSArNzEsMTEgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmludmFs
aWRhdGUoKQogICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9M
YXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0KQordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xh
eWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCiB7CiAgICAgQVNTRVJUKHZpZGVv
TGF5ZXJJRCk7CiAgICAgbV9sYXllckhvc3QgPSBXS01ha2VSZW5kZXJMYXllcih2aWRlb0xheWVy
SUQpOwotICAgIGVudGVyRnVsbHNjcmVlbigqbV9sYXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0
KTsKKyAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCk7
CiB9CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2Fi
bGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5nZXMp
CkBAIC0xMTIsNiArMTEyLDE3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpkaWRFeGl0RnVsbHNjcmVlbigpCiAgICAgW21fbGF5ZXJIb3N0IHJlbW92ZUZyb21TdXBlcmxh
eWVyXTsKICAgICBtX2xheWVySG9zdC5jbGVhcigpOwogfQorICAgIAordm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkKK3sKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFudXBG
dWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKK3sKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZFNldHVwRnVs
bHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
aW5kZXggMzQ5ZGQyZjFlYmY5ZjZlNTJkZDhjMzgwMDcyMjM4MjgyNzJhYzRhZi4uZWJjOWRiOTdm
NmVlMTUzNjkxODA5MDJlZTNkYjYwZmNhZjYwYWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAt
NzYsOCArNzYsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHRlcm5hbFBs
YXliYWNrKGJvb2wgZW5hYmxlZCwgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlOjpFeHRlcm5h
bFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRl
OwogCiAgICAgLy8gYWRkaXRpb25hbCBpbmNvbWluZworICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1
cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgdmlydHVhbCB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2
aXR5RW51bSh1bnNpZ25lZCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTk5YmIxZWQ3ZTJiNjhiYWJjODY3NWUz
N2UyNzBlYmNjMDFmNTc4NC4uOGI0ZDhlZjViODE4Yjg0ZTI2MzIwMGU3N2U2OGMzNzk3ZmM5NmUx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw4ICszMywx
MCBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBCZWdpblNj
YW5uaW5nQmFja3dhcmQoKQogICAgIEVuZFNjYW5uaW5nKCkKICAgICBSZXF1ZXN0RXhpdEZ1bGxz
Y3JlZW4oKQorICAgIERpZFNldHVwRnVsbHNjcmVlbigpCiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4o
KQogICAgIERpZEVudGVyRnVsbHNjcmVlbigpCisgICAgRGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQog
ICAgIFNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzKQogICAgIFNl
dFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogICAgIFNlbGVjdEF1ZGlv
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAwMTc5
NzNjYzNiMGY1YmZkOThkMjA1ODdmYWRmZmQ3ZjFkMzU1NzA5Li4wYTE5MzNkYTUzNzQ5MzE3NjYw
YjYzN2Q3N2M5NDgzZjQ3OWVlYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTIyLDI4ICsy
MiwyOCBAQAogICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgiCiAKICNpZiBQTEFURk9STShJT1MpCiAKLSNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FdmVu
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVWaWV3Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRl
ckxheWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XZWJD
b3JlVGhyZWFkUnVuLmg+CisjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBv
cnQgIldlYlBhZ2UuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlv
bi5oPgorI2ltcG9ydCA8V2ViQ29yZS9FdmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5h
bWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVmlkZW9FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgor
I2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJM
YXllckJhY2tpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9TZXR0aW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTk0LDE1ICs5NCw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogICAgIG1faXNBbmltYXRpbmcgPSB0
cnVlOwogICAgIHNldE1lZGlhRWxlbWVudCh0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkpOwogCi0g
ICAgUGxhdGZvcm1MYXllciogdmlkZW9MYXllciA9IFtDQUxheWVyIGxheWVyXTsKLSNpZm5kZWYg
TkRFQlVHCi0gICAgW3ZpZGVvTGF5ZXIgc2V0TmFtZTpAIldlYiB2aWRlbyBmdWxsc2NyZWVuIG1h
bmFnZXIgbGF5ZXIiXTsKLSNlbmRpZgogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKLSAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcih2aWRlb0xheWVyKTsKLSAgICBzZXRW
aWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0xheWVyKTsKLQotICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW5XaXRo
SUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSwgc2NyZWVuUmVjdEZvck5vZGUo
bm9kZSkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVuV2l0aElE
KG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIHNjcmVlblJlY3RGb3JOb2RlKG5v
ZGUpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCkBAIC0xNjUsNyArMTU5LDE5
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0RXh0ZXJuYWxQbGF5YmFjayhi
b29sIGVuYWJsZWQsIFdlYlZpZGVvRnVsbHNjCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEV4dGVybmFsUGxheWJhY2tQcm9w
ZXJ0aWVzKGVuYWJsZWQsIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YXJnZXRUeXBlKSwgbG9jYWxp
emVkRGV2aWNlTmFtZSksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQotCisgICAgCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbigpCit7CisgICAgUGxhdGZv
cm1MYXllciogdmlkZW9MYXllciA9IFtDQUxheWVyIGxheWVyXTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgW3ZpZGVvTGF5ZXIgc2V0TmFtZTpAIldlYiB2aWRlbyBmdWxsc2NyZWVuIG1hbmFnZXIgbGF5
ZXIiXTsKKyNlbmRpZgorICAgIAorICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExh
eWVyKHZpZGVvTGF5ZXIpOworICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpFbnRlckZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAg
bV9pc0FuaW1hdGluZyA9IGZhbHNlOwpAQCAtMTg0LDEzICsxOTAsMjIgQEAgdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogCiB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKIHsKLSAgICBtX2lzQW5pbWF0
aW5nID0gZmFsc2U7Ci0gICAgbV9pc0Z1bGxzY3JlZW4gPSBmYWxzZTsKLQotICAgIG1fbGF5ZXJI
b3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIpOwotICAgIG1fbGF5ZXJIb3N0aW5n
Q29udGV4dCA9IG51bGxwdHI7CiAgICAgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobnVsbHB0cik7
CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ+
IHByb3RlY3QodGhpcyk7CiAKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeeworICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihu
dWxscHRyKTsKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gbnVsbHB0cjsKKyAgICAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OkNsZWFudXBGdWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgICAgICBwcm90ZWN0
LmNsZWFyKCk7CisgICAgfSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkKK3sKKyAgICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7
CisgICAgbV9pc0Z1bGxzY3JlZW4gPSBmYWxzZTsKKyAgICAKICAgICBzZXRNZWRpYUVsZW1lbnQo
bnVsbHB0cik7CiAKICAgICBpZiAoIW1fdGFyZ2V0SXNGdWxsc2NyZWVuKQo=
</data>
<flag name="review"
          id="257474"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233203</attachid>
            <date>2014-06-16 16:55:14 -0700</date>
            <delta_ts>2014-06-17 15:27:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-133706-20140616165452.patch</filename>
            <type>text/plain</type>
            <size>25058</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJjN2U3N2ZiNjRiMjdm
Njg3ODhmMTgyZTlkODEyODliZjI3OWE5Ny4uZGQ0NjA0NzY2NTMwZWY5MmNkY2VkZmJhODBkODVh
MzEyNGIyMjhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGVudGVyIGFu
ZCBleGl0IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBieSB1c2luZyB0d28gc3RlcCB0cmFuc2l0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNzA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc2V0dXBG
dWxsc2NyZWVuLCBjcmVhdGVzIHRoZSBmdWxsc2NyZWVuIHZpZXdzIHJlYWR5IHRvIHJlY2VpdmUg
dGhlIHZpZGVvIGxheWVyLgorICAgICAgICBPbmNlIHRoZXkgYXJlIGluIHBsYWNlLCBkaWRTZXR1
cEZ1bGxzY3JlZW4gd2lsbCBtb3ZlIHRoZSB2aWRlbyBsYXllciBpbnRvIHRoZSAKKyAgICAgICAg
bmV3IHZpZXcgaGllcmFyY2h5IGFuZCBpbml0aWF0ZSBlbnRlckZ1bGxzY3JlZW4gdG8gYW5pbWF0
ZS4KKworICAgICAgICBSZXZlcnNlIHByb2Nlc3MgZm9yIGV4aXQgZnVsbHNjcmVlbi4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGQgZXhwb3J0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgUmVm
YWN0b3IgaW50byBkaWRTZXR1cEZ1bGxzY3JlZW4uCisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIgZGlkU2V0dXBGdWxsc2NyZWVuXSk6CisgICAgICAgIE1vdmUgdGhlIHZp
ZGVvIGxheWVyIG9uY2UgZnVsbHNjcmVlbiBpcyByZWFkeSB0byByZWNlaXZlIGl0LgorICAgICAg
ICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGRpZEV4aXRGdWxsc2NyZWVuXSk6Cisg
ICAgICAgIE1vdmUgdGhlIHZpZGVvIGxheWVyIGJhY2sgaW50byB3ZSB0aGUgd2ViIHBhZ2UsIGFu
ZCBpbml0aWF0ZSBjbGVhbnVwLgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIGRpZENsZWFudXBGdWxsc2NyZWVuXSk6CisgICAgICAgIFJlZmFjdG9yZCBjbGVhbnVwIGZy
b20gZGlkRXhpdEZ1bGxzY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6IEFkZCBkZWxjYXJhdGlvbnMuCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbik6CisgICAg
ICAgIFJlZmFjdG9yZWQgZnJvbSBlbnRlckZ1bGxzY3JlZW4uIEJ1aWxkcyB2aWV3cyByZWFkeSB0
byByZWNlaXZlIHZpZGVvIGxheWVyLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGludG8gZnVsbHNj
cmVlbi4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIEFuaW1hdGVzIGZyb20gZnVsbHNjcmVlbi4gQ2xlYW51cCBpcyBy
ZWZhY3RvcmVkIGludG8gY2xlYW51cEZ1bGxzY3JlZW4oKQorICAgICAgICAoV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgUmVmYWN0
b3JlZCBmcm9tIGV4aXRGdWxsc2NyZWVuKCksIHJlbW92ZXMgdmlld3MuCisKIDIwMTQtMDYtMTYg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQ3Jh
c2ggYXQgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
YTliNThjYTQ4MmU4NzYwMzhiY2E2YzIzZDQwNWFmMzBiMTE0NTRjLi4yNDI2ZWUzMmI2MTRkOWM1
NjlhZDM5ZmMyYTI3MGQ2NGFiZmYxYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTQtMDYtMTAgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIElt
cHJvdmUgZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbiB0cmFuc2l0aW9uIGJ5IHVzaW5nIHR3byBz
dGVwIHRyYW5zaXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzM3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc2V0dXBGdWxsc2NyZWVuKCkvZGlkU2V0dXBGdWxsc2NyZWVuKCkgYW5kIGNs
ZWFudXBGdWxsc2NyZWVuKCkvZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQorICAgICAgICB0byB0aGUg
cHJveGllcy4gQW5kIHJlZmFjdG9yIGVudGVyL2V4aXQgZnVsbHNjcmVlbiB0byBkbyBzb21lIG9m
IHRoZSB3b3JrIGluIHNldHVwL2NsZWFudXAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICBBZGQgZm91ciBtZXRob2Rz
IG1lbnRpb25lZCBhYm92ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIFNldHVwL0NsZWFudXAg
ZnVuY3Rpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6IGRvZXMgd2hhdCBlbnRlckZ1bGxzY3JlZW4g
dXNlZCB0byBkby4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6IGZvcndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbik6IGZv
cndhcmQgSVBDLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbldpdGhJRCk6IGNoYW5nZWQgdG8gZW50ZXJGdWxsc2NyZWVuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOiBBZGQg
ZGlkU2V0dXAvZGlkQ2xlYW51cAorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZCBkaWRTZXR1cC9kaWRDbGVhbnVwCisgICAg
ICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbTogCisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZv
ck5vZGUpOiByZWZhY3RvcmVkLAorICAgICAgICBzb21lIGltcGxlbWVudGF0aW9uIG1vdmVzIHRv
IGRpZFNldHVwRnVsbHNjcmVlbi4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKToKKyAgICAgICAgTW92ZXMgdGhlIHZpZGVvIGxh
eWVyIG92ZXIgdG8gdGhlIGhvc3RlZCBsYXllciwgYW5kIGluaXRpYXRlcyBmdWxsc2NyZWVuLgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNj
cmVlbik6IHJlZmFjdG9yZWQsCisgICAgICAgIHNvbWUgaW1wbGVtZW50YXRpb24gbW92ZXMgdG8g
ZGlkQ2xlYW51cEZ1bGxzY3JlZW4sIGFuZCBpbml0aWF0ZXMgY2xlYW51cC4KKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgor
ICAgICAgICBGaW5hbCBjbGVhbnVwIHJlZmFjdG9yZWQgZnJvbSBkaWRFeGl0RnVsbHNjcmVlbigp
CisKIDIwMTQtMDYtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDaGFuZ2UgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRkSFRUUEhlYWRlckZpZWxkcyB0
byBzZXRIVFRQSGVhZGVyRmllbGRzIGluc3RlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmIy
ZDRiODE4YzA2ZGIxOTg0NzM0NDcxZmQ2MmZmODQ1ZWMxOTU0Yy4uNjI5MWE3MDcyNzVjNDUxOTUw
ZjA2MmJiM2Q3MDQwODUxOTE1ZmNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0MDEsNyAr
MzQwMSw5IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQx
MGludmFsaWRhdGVFdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDExc2V0RHVyYXRpb25FZAogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRzZXRDdXJyZW50VGltZUVkZAotX19aTjdX
ZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVu
RVI3Q0FMYXllck5TXzdJbnRSZWN0RQorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRXYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50
UmVjdEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2Ns
ZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQxN3NldFNlZWthYmxlUmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJD
b3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25z
RWJmZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE5c2V0
RXh0ZXJuYWxQbGF5YmFja0ViTlNfMjdXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UyNkV4dGVy
bmFsUGxheWJhY2tUYXJnZXRUeXBlRU4zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckFWS2l0Lm1tCmluZGV4IDZhMjNmM2EyN2E4ZDA1MjgxODY5Y2QyYTFhOGM5NjE1OTFlMmQ2M2Eu
LmRlN2E2YTI5ODM2ZDVjY2ZiZWU1NWNhZjZiMTU4YzMwYWQzNGZlOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtNjMsMTYgKzYzLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogI2Vsc2UKIAogQGludGVyZmFjZSBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
IChGdWxsc2NyZWVuT2JzZXJ2YXRpb24pCistICh2b2lkKWRpZFNldHVwRnVsbHNjcmVlbjsKIC0g
KHZvaWQpZGlkRW50ZXJGdWxsc2NyZWVuOwogLSAodm9pZClkaWRFeGl0RnVsbHNjcmVlbjsKKy0g
KHZvaWQpZGlkQ2xlYW51cEZ1bGxzY3JlZW47CiBAZW5kCiAKIGNsYXNzIFdlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJDaGFuZ2VPYnNlcnZlciA6IHB1YmxpYyBXZWJWaWRlb0Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlciB7CiAgICAgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciogX3Rhcmdl
dDsKIHB1YmxpYzoKICAgICB2b2lkIHNldFRhcmdldChXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyKiB0YXJnZXQpIHsgX3RhcmdldCA9IHRhcmdldDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZSB7IFtfdGFyZ2V0IGRpZFNldHVwRnVsbHNjcmVlbl07
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3Rh
cmdldCBkaWRFbnRlckZ1bGxzY3JlZW5dOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxs
c2NyZWVuKCkgb3ZlcnJpZGUgeyBbX3RhcmdldCBkaWRFeGl0RnVsbHNjcmVlbl07IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVycmlkZSB7IFtfdGFyZ2V0IGRp
ZENsZWFudXBGdWxsc2NyZWVuXTsgfQogfTsKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXIKQEAgLTExNSwxNSArMTE5LDE0IEBAIHB1YmxpYzoKICAgICBbc2Vs
ZiByZXRhaW5dOyAvLyBCYWxhbmNlZCBieSAtcmVsZWFzZSBpbiBkaWRFeGl0RnVsbHNjcmVlbjoK
ICAgICAKICAgICBVTlVTRURfUEFSQU0oc2NyZWVuKTsKLSAgICBfdmlkZW9GdWxsc2NyZWVuTGF5
ZXIgPSBbQ0FMYXllciBsYXllcl07CiAgICAgX2ludGVyZmFjZSA9IGFkb3B0UmVmKG5ldyBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk7CiAgICAgX2ludGVyZmFjZS0+c2V0V2ViVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoJl9jaGFuZ2VPYnNlcnZlcik7CiAgICAgX21vZGVs
ID0gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50KTsKICAg
ICBfbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZShfaW50ZXJmYWNlLmdldCgp
KTsKICAgICBfaW50ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbChfbW9kZWwuZ2V0
KCkpOwogICAgIF9tb2RlbC0+c2V0TWVkaWFFbGVtZW50KF9tZWRpYUVsZW1lbnQuZ2V0KCkpOwot
ICAgIF9tb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoX3ZpZGVvRnVsbHNjcmVlbkxheWVy
LmdldCgpKTsKLSAgICBfaW50ZXJmYWNlLT5lbnRlckZ1bGxzY3JlZW4oKl92aWRlb0Z1bGxzY3Jl
ZW5MYXllci5nZXQoKSwgX21lZGlhRWxlbWVudC0+c2NyZWVuUmVjdCgpKTsKKyAgICBfdmlkZW9G
dWxsc2NyZWVuTGF5ZXIgPSBbQ0FMYXllciBsYXllcl07CisgICAgX2ludGVyZmFjZS0+c2V0dXBG
dWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIF9tZWRpYUVsZW1lbnQtPnNj
cmVlblJlY3QoKSk7CiB9CiAKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW4KQEAgLTEzNyw2ICsxNDAs
MTIgQEAgcHVibGljOgogICAgICAgICBfaW50ZXJmYWNlLT5yZXF1ZXN0SGlkZUFuZEV4aXRGdWxs
c2NyZWVuKCk7CiB9CiAKKy0gKHZvaWQpZGlkU2V0dXBGdWxsc2NyZWVuCit7CisgICAgX21vZGVs
LT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCkpOwor
ICAgIF9pbnRlcmZhY2UtPmVudGVyRnVsbHNjcmVlbigpOworfQorCiAtICh2b2lkKWRpZEVudGVy
RnVsbHNjcmVlbgogewogfQpAQCAtMTQ0LDkgKzE1MywxNyBAQCBwdWJsaWM6CiAtICh2b2lkKWRp
ZEV4aXRGdWxsc2NyZWVuCiB7CiAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgIF9tb2RlbC0+
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsKTsKKyAgICAgICAgX2ludGVyZmFjZS0+Y2xlYW51
cEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsKK30KKworLSAodm9pZClkaWRDbGVhbnVwRnVsbHNjcmVl
bgoreworICAgIFdlYlRocmVhZFJ1biheewogICAgICAgICBfaW50ZXJmYWNlLT5zZXRXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbChudWxscHRyKTsKICAgICAgICAgX21vZGVsLT5zZXRXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cik7Ci0gICAgICAgIF9tb2RlbC0+c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIobnVsbHB0cik7CisgICAgICAgIF9tb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIobmlsKTsKICAgICAgICAgX21vZGVsLT5zZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7CiAg
ICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKG51
bGxwdHIpOwogICAgICAgICBfbW9kZWwgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaAppbmRleCAwOWY1NWQ5MmI3ZDU5MmM0MTM0NzA4YzEyZTllOWUwOGRiMTExMDhhLi4xMGYz
ZDA3NTc5Y2JiNDRjMmE3NmMyYmZlYTYzY2ExNDUzZmQ4OTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaApAQCAtNDksOCArNDksMTAgQEAgY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWw7CiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoKSB7IH07CisgICAg
dmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNj
cmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSA9IDA7
CiB9OwogICAgIAogY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQKQEAgLTg1
LDggKzg3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2Vs
ZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2Vs
ZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4dGVybmFsUGxheWJh
Y2soYm9vbCBlbmFibGVkLCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxvY2Fs
aXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNj
cmVlbihQbGF0Zm9ybUxheWVyJiwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCk7CisgICAg
dmlydHVhbCB2b2lkIHNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiwgV2ViQ29yZTo6SW50
UmVjdCBpbml0aWFsUmVjdCk7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpOwog
ICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVj
dCk7CisgICAgdmlydHVhbCB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVs
bHNjcmVlbigpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA0MDkwMDhl
Zjk3NDliOTUxOWQ3YmE5NTkwZmVmZDMwZWZiZWQ1MjJlLi43NzVlMjM5MmJmZWI4ZGQyYmRlYjQ5
ZGU1MmFmYWVjMTI5NWI5NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02
ODgsNyArNjg4LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0
RXh0ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmEKICAgICBbbV92aWRlb0xheWVy
Q29udGFpbmVyLmdldCgpIHNldEhpZGRlbjplbmFibGVkXTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZp
ZGVvTGF5ZXIsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlk
ZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKIHsKICAgICBfX2Jsb2NrIFJl
ZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKICAg
ICAKQEAgLTcxMCw2ICs3MTAsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICBb
bV92aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvUmVjdDp2aWRlb1JlY3RdOwogCiAgICAgICAg
IG1fcGxheWVyVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbY2xhc3NBVlBsYXllclZpZXdDb250
cm9sbGVyIGFsbG9jXSBpbml0V2l0aFZpZGVvTGF5ZXI6bV92aWRlb0xheWVyQ29udGFpbmVyLmdl
dCgpXSk7CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tD
b250cm9sczpOT107CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXllckNv
bnRyb2xsZXI6KEFWUGxheWVyQ29udHJvbGxlciAqKXBsYXllckNvbnRyb2xsZXIoKV07CiAgICAg
ICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOnBsYXllckNvbnRyb2xsZXIo
KV07CiAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmlld0NvbnRyb2xs
ZXI6bV9wbGF5ZXJWaWV3Q29udHJvbGxlci5nZXQoKV07CkBAIC03MjcsNDYgKzcyOCw0NSBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxh
dGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBk
aWRNb3ZlVG9QYXJlbnRWaWV3Q29udHJvbGxlcjptX3ZpZXdDb250cm9sbGVyLmdldCgpXTsKICAg
ICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKIAot
ICAgICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4g
cHJvdGVjdDIodGhpcyk7Ci0KLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgXnsKLSAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVy
RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKXsKLSAgICAg
ICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCi0gICAgICAgICAgICAg
ICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFbnRlckZ1bGxzY3JlZW4oKTsK
LSAgICAgICAgICAgICAgICBwcm90ZWN0Mi5jbGVhcigpOwotICAgICAgICAgICAgfV07Ci0gICAg
ICAgIH0pOwotCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci0KKyAgICAgICAgCisg
ICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRTZXR1cEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgCiAg
ICAgICAgIHByb3RlY3QuY2xlYXIoKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKKyAgICBfX2Jsb2NrIFJl
ZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKKyAg
ICAKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW5XaXRoQ29tcGxldGlv
bkhhbmRsZXI6XihCT09MLCBOU0Vycm9yKikKKyAgICAgICAgeworICAgICAgICAgICAgW21fcGxh
eWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CisgICAgICAg
ICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgbV9m
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVsbHNjcmVlbigpOworICAgICAgICAg
ICAgcHJvdGVjdC5jbGVhcigpOworICAgICAgICB9XTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7Ci0KKyAgICAKICAgICBtX3BsYXllckNvbnRy
b2xsZXIuY2xlYXIoKTsKICAgICAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBeeworICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1Bs
YXliYWNrQ29udHJvbHM6Tk9dOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3
XS5mcmFtZSA9IGZpbmFsUmVjdDsKICAgICAgICAgaWYgKFttX3ZpZGVvTGF5ZXJDb250YWluZXIg
dmlkZW9MYXllckdyYXZpdHldICE9IEFWVmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3BlY3QpCiAg
ICAgICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvTGF5ZXJHcmF2aXR5OkFW
VmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3BlY3RdOwotICAgICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJy
b3IqKXsKLSAgICAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKLSAgICAgICAgICAg
IFttX3dpbmRvdyBzZXRSb290Vmlld0NvbnRyb2xsZXI6bmlsXTsKLSAgICAgICAgICAgIFttX3Bs
YXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07Ci0gICAgICAgICAgICBbbV9wbGF5
ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07Ci0gICAgICAgICAgICBt
X3BsYXllclZpZXdDb250cm9sbGVyID0gbmlsOwotICAgICAgICAgICAgbV92aWV3Q29udHJvbGxl
ciA9IG5pbDsKLSAgICAgICAgICAgIG1fd2luZG93ID0gbmlsOwotICAgICAgICAgICAgW21fdmlk
ZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0gICAgICAgICAgICBtX3ZpZGVvTGF5ZXIg
PSBuaWw7Ci0gICAgICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHJlbW92ZUZyb21TdXBl
cmxheWVyXTsKLSAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmll
d0NvbnRyb2xsZXI6bmlsXTsKLSAgICAgICAgICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9IG5p
bDsKLQorICAgICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gbGF5b3V0SWZOZWVk
ZWRdOworICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhD
b21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQorICAgICAgICB7CisgICAgICAgICAg
ICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltjbGFz
c1VJQ29sb3IgY2xlYXJDb2xvcl1dOwogICAgICAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyKQogICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5k
aWRFeGl0RnVsbHNjcmVlbigpOwogICAgICAgICAgICAgcHJvdGVjdC5jbGVhcigpOwpAQCAtNzc0
LDYgKzc3NCwzMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdAogICAgIH0pOwogfQogCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigpCit7
CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHBy
b3RlY3QodGhpcyk7CisgICAgCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXnsKKyAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOworICAgICAgICBb
bV93aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOm5pbF07CisgICAgICAgIFttX3BsYXllclZp
ZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsKKyAgICAgICAgbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciA9IG5pbDsKKyAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IG5pbDsKKyAgICAgICAg
bV93aW5kb3cgPSBuaWw7CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5
ZXJdOworICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBuaWw7CisgICAgICAgIFttX3ZpZGVvTGF5ZXJD
b250YWluZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbbV92aWRlb0xheWVyQ29u
dGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm5pbF07CisgICAgICAgIG1fdmlkZW9MYXll
ckNvbnRhaW5lciA9IG5pbDsKKyAgICAgICAgCisgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlcikKKyAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRD
bGVhbnVwRnVsbHNjcmVlbigpOworICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgfSk7Cit9
CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmludmFsaWRhdGUoKQog
ewogICAgIG1fcGxheWVyQ29udHJvbGxlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKaW5kZXggNmY4NzNhMGM2NzYzZmJjZjE0MWY1NmQyZTQxNTQ5MzM5NjIxYjJhYi4uZGNmOWEx
NzZkNTI4NDVlZTIyY2RjMmViNGRhOGRhM2VkYmMxMTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oCkBAIC01NSwxMyArNTUsMTUgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92
ZXJyaWRlOwogCiAgICAgLy8gVHJhbnNsYXRlIHRvIEZ1bGxzY3JlZW5JbnRlcmZhY2UKLSAgICB2
b2lkIGVudGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0
aWFsUmVjdCk7CisgICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QsIFdlYkNv
cmU6OkludFJlY3QgaW5pdGlhbFJlY3QpOwogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0
b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRl
cm5hbFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUs
IFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICAKICAgICAvLyBGdWxsc2NyZWVuIE9i
c2VydmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51
cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICAKICAgICAvLyBGdWxsc2NyZWVuTW9kZWwKICAg
ICB2aXJ0dWFsIHZvaWQgcGxheSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1ODAxZmY2ZGU0YmE2YjFiYmU2MjU5MTA2MmRlZDM4
YjU1ZmE0NGY1Li42YWZhNDgxYzg4NDAwOGJjNmVhZDk4NTg4OTRkNzYxMWY5NjkzM2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzAsNyArMzAs
OSBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNl
dEV4dGVybmFsUGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0
VHlwZSwgU3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIFNldER1cmF0aW9uKGRvdWJs
ZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKLSAg
ICBFbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJ
bnRSZWN0IGluaXRpYWxSZWN0KQorICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2
aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCisgICAgRW50ZXJGdWxs
c2NyZWVuKCkKICAgICBFeGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkK
KyAgICBDbGVhbnVwRnVsbHNjcmVlbigpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW0KaW5kZXggMWZiOGYzZmU4ZTEzNmYyMjRjZDY4MTExYWJjZDY2MDgzZGFiMTMzMS4uNzUz
NzI0OGJjZDIwM2Q5NmNlZGYwMDE1ZTIyOTk0MzdiYWU5MDU5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0KQEAgLTcxLDExICs3MSwxMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgbV9sYXllckhvc3QuY2xlYXIoKTsKIH0KIAot
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbldpdGhJ
RCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QpCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKIHsK
ICAgICBBU1NFUlQodmlkZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRl
ckxheWVyKHZpZGVvTGF5ZXJJRCk7Ci0gICAgZW50ZXJGdWxsc2NyZWVuKCptX2xheWVySG9zdC5n
ZXQoKSwgaW5pdGlhbFJlY3QpOworICAgIHNldHVwRnVsbHNjcmVlbigqbV9sYXllckhvc3QuZ2V0
KCksIGluaXRpYWxSZWN0KTsKIH0KICAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwg
ZG91YmxlPj4mIHJhbmdlcykKQEAgLTExMiw2ICsxMTIsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBbbV9sYXllckhvc3Qg
cmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9CisgICAg
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6RGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRTZXR1cEZ1bGxzY3JlZW4oKQor
eworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
RGlkU2V0dXBGdWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQogCiB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCAzNDlkZDJmMWViZjlmNmU1MmRkOGMzODAwNzIyMzgyODI3MmFjNGFm
Li5lYmM5ZGI5N2Y2ZWUxNTM2OTE4MDkwMmVlM2RiNjBmY2FmNjBhYWYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCkBAIC03Niw4ICs3NiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNl
dEV4dGVybmFsUGxheWJhY2soYm9vbCBlbmFibGVkLCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2U6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFt
ZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBhZGRpdGlvbmFsIGluY29taW5nCisgICAgdmlydHVhbCB2
b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxz
Y3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhOTliYjFlZDdlMmI2
OGJhYmM4Njc1ZTM3ZTI3MGViY2MwMWY1Nzg0Li44YjRkOGVmNWI4MThiODRlMjYzMjAwZTc3ZTY4
YzM3OTdmYzk2ZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTMzLDggKzMzLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewog
ICAgIEJlZ2luU2Nhbm5pbmdCYWNrd2FyZCgpCiAgICAgRW5kU2Nhbm5pbmcoKQogICAgIFJlcXVl
c3RFeGl0RnVsbHNjcmVlbigpCisgICAgRGlkU2V0dXBGdWxsc2NyZWVuKCkKICAgICBEaWRFeGl0
RnVsbHNjcmVlbigpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKCkKKyAgICBEaWRDbGVhbnVwRnVs
bHNjcmVlbigpCiAgICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZHMpCiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiAgICAg
U2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CmluZGV4IDAxNzk3M2NjM2IwZjViZmQ5OGQyMDU4N2ZhZGZmZDdmMWQzNTU3MDkuLjk4NzJhY2Mz
OTY2NTIxNmFhNjVlNmE0MGRiOGY5ZDQ1NmM4NzUyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMjIsMjggKzIyLDI4IEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL0V2ZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1l
bnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVuZGVyTGF5ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyQmFja2lu
Zy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RpbWVSYW5nZXMuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KKyNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2ltcG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgorI2ltcG9y
dCAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9D
b3JlQW5pbWF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL0V2ZW50TmFtZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW1wb3J0
IDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1D
QUxheWVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckxheWVyLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlckxheWVyQmFja2luZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVSYW5n
ZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtOTQsMTUgKzk0LDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiAgICAgbV9pc0Fu
aW1hdGluZyA9IHRydWU7CiAgICAgc2V0TWVkaWFFbGVtZW50KHRvSFRNTE1lZGlhRWxlbWVudChu
b2RlKSk7CiAKLSAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyID0gW0NBTGF5ZXIgbGF5ZXJd
OwotI2lmbmRlZiBOREVCVUcKLSAgICBbdmlkZW9MYXllciBzZXROYW1lOkAiV2ViIHZpZGVvIGZ1
bGxzY3JlZW4gbWFuYWdlciBsYXllciJdOwotI2VuZGlmCiAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2Vz
cygpOwotICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIp
OwotICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIpOwotCi0gICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbldpdGhJRChtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpLCBzY3JlZW5S
ZWN0Rm9yTm9kZShub2RlKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIAorICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSwgc2NyZWVuUmVj
dEZvck5vZGUobm9kZSkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKQEAgLTE2
NSw3ICsxNTksMTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRFeHRlcm5h
bFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgV2ViVmlkZW9GdWxsc2MKIHsKICAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0RXh0ZXJuYWxQ
bGF5YmFja1Byb3BlcnRpZXMoZW5hYmxlZCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhcmdldFR5
cGUpLCBsb2NhbGl6ZWREZXZpY2VOYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9Ci0KKyAgICAK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKK3sK
KyAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOworI2lmbmRl
ZiBOREVCVUcKKyAgICBbdmlkZW9MYXllciBzZXROYW1lOkAiV2ViIHZpZGVvIGZ1bGxzY3JlZW4g
bWFuYWdlciBsYXllciJdOworI2VuZGlmCisgICAgCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRSb290TGF5ZXIodmlkZW9MYXllcik7CisgICAgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
dmlkZW9MYXllcik7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30K
KyAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVu
KCkKIHsKICAgICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7CkBAIC0xODQsMTMgKzE5MCwyMiBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAKIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogeworICAg
IHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCk7CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ+IHByb3RlY3QodGhpcyk7CisKKyAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBtX2xheWVy
SG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihudWxscHRyKTsKKyAgICAgICAgbV9sYXllckhv
c3RpbmdDb250ZXh0ID0gbnVsbHB0cjsKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBGdWxsc2NyZWVuKCksIG1fcGFn
ZS0+cGFnZUlEKCkpOworICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgfSk7Cit9CisgICAg
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKCkK
K3sKICAgICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7CiAgICAgbV9pc0Z1bGxzY3JlZW4gPSBmYWxz
ZTsKLQotICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIpOwot
ICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IG51bGxwdHI7Ci0gICAgc2V0VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIobnVsbHB0cik7Ci0KKyAgICAKICAgICBzZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7
CiAKICAgICBpZiAoIW1fdGFyZ2V0SXNGdWxsc2NyZWVuKQo=
</data>
<flag name="commit-queue"
          id="257766"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233263</attachid>
            <date>2014-06-17 15:53:51 -0700</date>
            <delta_ts>2014-06-17 16:33:44 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-133706-20140617155328.patch</filename>
            <type>text/plain</type>
            <size>25054</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJjN2U3N2ZiNjRiMjdm
Njg3ODhmMTgyZTlkODEyODliZjI3OWE5Ny4uZTYwZjgzZWE3NjRmNzU0ODFlYjc1Y2FiZmJhODBi
NTAyMzk0M2Q0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA2LTEwICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGVudGVyIGFu
ZCBleGl0IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBieSB1c2luZyB0d28gc3RlcCB0cmFuc2l0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNzA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIHNldHVwRnVs
bHNjcmVlbiwgY3JlYXRlcyB0aGUgZnVsbHNjcmVlbiB2aWV3cyByZWFkeSB0byByZWNlaXZlIHRo
ZSB2aWRlbyBsYXllci4KKyAgICAgICAgT25jZSB0aGV5IGFyZSBpbiBwbGFjZSwgZGlkU2V0dXBG
dWxsc2NyZWVuIHdpbGwgbW92ZSB0aGUgdmlkZW8gbGF5ZXIgaW50byB0aGUgCisgICAgICAgIG5l
dyB2aWV3IGhpZXJhcmNoeSBhbmQgaW5pdGlhdGUgZW50ZXJGdWxsc2NyZWVuIHRvIGFuaW1hdGUu
CisKKyAgICAgICAgUmV2ZXJzZSBwcm9jZXNzIGZvciBleGl0IGZ1bGxzY3JlZW4uCisKKyAgICAg
ICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIGV4cG9ydHMuCisgICAgICAgICogcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46XSk6CisgICAgICAgIFJlZmFj
dG9yIGludG8gZGlkU2V0dXBGdWxsc2NyZWVuLgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyIGRpZFNldHVwRnVsbHNjcmVlbl0pOgorICAgICAgICBNb3ZlIHRoZSB2aWRl
byBsYXllciBvbmNlIGZ1bGxzY3JlZW4gaXMgcmVhZHkgdG8gcmVjZWl2ZSBpdC4KKyAgICAgICAg
KC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBkaWRFeGl0RnVsbHNjcmVlbl0pOgorICAg
ICAgICBNb3ZlIHRoZSB2aWRlbyBsYXllciBiYWNrIGludG8gd2UgdGhlIHdlYiBwYWdlLCBhbmQg
aW5pdGlhdGUgY2xlYW51cC4KKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ciBkaWRDbGVhbnVwRnVsbHNjcmVlbl0pOgorICAgICAgICBSZWZhY3RvcmQgY2xlYW51cCBmcm9t
IGRpZEV4aXRGdWxsc2NyZWVuLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oOiBBZGQgZGVsY2FyYXRpb25zLgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4pOgorICAgICAg
ICBSZWZhY3RvcmVkIGZyb20gZW50ZXJGdWxsc2NyZWVuLiBCdWlsZHMgdmlld3MgcmVhZHkgdG8g
cmVjZWl2ZSB2aWRlbyBsYXllci4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICBBbmltYXRlcyBpbnRvIGZ1bGxzY3Jl
ZW4uCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxz
Y3JlZW4pOgorICAgICAgICBBbmltYXRlcyBmcm9tIGZ1bGxzY3JlZW4uIENsZWFudXAgaXMgcmVm
YWN0b3JlZCBpbnRvIGNsZWFudXBGdWxsc2NyZWVuKCkKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIFJlZmFjdG9y
ZWQgZnJvbSBleGl0RnVsbHNjcmVlbigpLCByZW1vdmVzIHZpZXdzLgorCiAyMDE0LTA2LTE2ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IENyYXNo
IGF0IFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWE5
YjU4Y2E0ODJlODc2MDM4YmNhNmMyM2Q0MDVhZjMwYjExNDU0Yy4uYTIzZjhmNTM4YmEwOWVhMzg5
N2NmOTUzODQxN2VkZjkwNDhhNGM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0
LTA2LTEwICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBy
b3ZlIGVudGVyIGFuZCBleGl0IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBieSB1c2luZyB0d28gc3Rl
cCB0cmFuc2l0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMzNzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEFkZCBzZXR1cEZ1bGxzY3JlZW4oKS9kaWRTZXR1cEZ1bGxzY3JlZW4oKSBhbmQgY2xlYW51
cEZ1bGxzY3JlZW4oKS9kaWRDbGVhbnVwRnVsbHNjcmVlbigpCisgICAgICAgIHRvIHRoZSBwcm94
aWVzLiBBbmQgcmVmYWN0b3IgZW50ZXIvZXhpdCBmdWxsc2NyZWVuIHRvIGRvIHNvbWUgb2YgdGhl
IHdvcmsgaW4gc2V0dXAvY2xlYW51cC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgIEFkZCBmb3VyIG1ldGhvZHMgbWVu
dGlvbmVkIGFib3ZlLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgU2V0dXAvQ2xlYW51cCBmdW5j
dGlvbnMuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKTogZG9lcyB3aGF0IGVudGVyRnVsbHNjcmVlbiB1c2Vk
IHRvIGRvLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OmRpZENsZWFudXBGdWxsc2NyZWVuKTogZm9yd2FyZCBJUEMuCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKTogZm9yd2Fy
ZCBJUEMuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuV2l0aElEKTogY2hhbmdlZCB0byBlbnRlckZ1bGxzY3JlZW4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6IEFkZCBkaWRT
ZXR1cC9kaWRDbGVhbnVwCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkIGRpZFNldHVwL2RpZENsZWFudXAKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOiAKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9k
ZSk6IHJlZmFjdG9yZWQsCisgICAgICAgIHNvbWUgaW1wbGVtZW50YXRpb24gbW92ZXMgdG8gZGlk
U2V0dXBGdWxsc2NyZWVuLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICBNb3ZlcyB0aGUgdmlkZW8gbGF5ZXIg
b3ZlciB0byB0aGUgaG9zdGVkIGxheWVyLCBhbmQgaW5pdGlhdGVzIGZ1bGxzY3JlZW4uCisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVu
KTogcmVmYWN0b3JlZCwKKyAgICAgICAgc29tZSBpbXBsZW1lbnRhdGlvbiBtb3ZlcyB0byBkaWRD
bGVhbnVwRnVsbHNjcmVlbiwgYW5kIGluaXRpYXRlcyBjbGVhbnVwLgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6CisgICAg
ICAgIEZpbmFsIGNsZWFudXAgcmVmYWN0b3JlZCBmcm9tIGRpZEV4aXRGdWxsc2NyZWVuKCkKKwog
MjAxNC0wNi0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIENoYW5nZSBSZXNvdXJjZVJlcXVlc3RCYXNlOjphZGRIVFRQSGVhZGVyRmllbGRzIHRvIHNl
dEhUVFBIZWFkZXJGaWVsZHMgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiYjJkNGI4
MThjMDZkYjE5ODQ3MzQ0NzFmZDYyZmY4NDVlYzE5NTRjLi42MjkxYTcwNzI3NWM0NTE5NTBmMDYy
YmIzZDcwNDA4NTE5MTVmY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzQwMSw3ICszNDAx
LDkgQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDEwaW52
YWxpZGF0ZUV2CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MTFzZXREdXJhdGlvbkVkCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0MTRleGl0RnVsbHNjcmVlbkVOU183SW50UmVjdEUKIF9fWk43V2ViQ29yZTMyV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRUaW1lRWRkCi1fX1pON1dlYkNv
cmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FUjdD
QUxheWVyTlNfN0ludFJlY3RFCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDE1c2V0dXBGdWxsc2NyZWVuRVI3Q0FMYXllck5TXzdJbnRSZWN0
RQorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3Y2xlYW51
cEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRpbWVSYW5nZXNFCiBfX1pON1dlYkNvcmUz
MldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZm
CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTlzZXRFeHRl
cm5hbFBsYXliYWNrRWJOU18yN1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZTI2RXh0ZXJuYWxQ
bGF5YmFja1RhcmdldFR5cGVFTjNXVEY2U3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQubW0KaW5kZXggNmEyM2YzYTI3YThkMDUyODE4NjljZDJhMWE4Yzk2MTU5MWUyZDYzYS4uZGU3
YTZhMjk4MzZkNWNjZmJlZTU1Y2FmNmIxNThjMzBhZDM0ZmU5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckFWS2l0Lm1tCkBAIC02MywxNiArNjMsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAjZWxzZQogCiBAaW50ZXJmYWNlIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgKEZ1
bGxzY3JlZW5PYnNlcnZhdGlvbikKKy0gKHZvaWQpZGlkU2V0dXBGdWxsc2NyZWVuOwogLSAodm9p
ZClkaWRFbnRlckZ1bGxzY3JlZW47CiAtICh2b2lkKWRpZEV4aXRGdWxsc2NyZWVuOworLSAodm9p
ZClkaWRDbGVhbnVwRnVsbHNjcmVlbjsKIEBlbmQKIAogY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNoYW5nZU9ic2VydmVyIDogcHVibGljIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyIHsKICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyKiBfdGFyZ2V0Owog
cHVibGljOgogICAgIHZvaWQgc2V0VGFyZ2V0KFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIq
IHRhcmdldCkgeyBfdGFyZ2V0ID0gdGFyZ2V0OyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFNldHVw
RnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgW190YXJnZXQgZGlkU2V0dXBGdWxsc2NyZWVuXTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZSB7IFtfdGFyZ2V0
IGRpZEVudGVyRnVsbHNjcmVlbl07IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3Jl
ZW4oKSBvdmVycmlkZSB7IFtfdGFyZ2V0IGRpZEV4aXRGdWxsc2NyZWVuXTsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgW190YXJnZXQgZGlkQ2xl
YW51cEZ1bGxzY3JlZW5dOyB9CiB9OwogCiBAaW1wbGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlcgpAQCAtMTE1LDE1ICsxMTksMTQgQEAgcHVibGljOgogICAgIFtzZWxmIHJl
dGFpbl07IC8vIEJhbGFuY2VkIGJ5IC1yZWxlYXNlIGluIGRpZEV4aXRGdWxsc2NyZWVuOgogICAg
IAogICAgIFVOVVNFRF9QQVJBTShzY3JlZW4pOwotICAgIF92aWRlb0Z1bGxzY3JlZW5MYXllciA9
IFtDQUxheWVyIGxheWVyXTsKICAgICBfaW50ZXJmYWNlID0gYWRvcHRSZWYobmV3IFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KTsKICAgICBfaW50ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcigmX2NoYW5nZU9ic2VydmVyKTsKICAgICBfbW9kZWwgPSBh
ZG9wdFJlZihuZXcgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQpOwogICAgIF9t
b2RlbC0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKF9pbnRlcmZhY2UuZ2V0KCkpOwog
ICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKF9tb2RlbC5nZXQoKSk7
CiAgICAgX21vZGVsLT5zZXRNZWRpYUVsZW1lbnQoX21lZGlhRWxlbWVudC5nZXQoKSk7Ci0gICAg
X21vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0
KCkpOwotICAgIF9pbnRlcmZhY2UtPmVudGVyRnVsbHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyLmdldCgpLCBfbWVkaWFFbGVtZW50LT5zY3JlZW5SZWN0KCkpOworICAgIF92aWRlb0Z1bGxz
Y3JlZW5MYXllciA9IFtDQUxheWVyIGxheWVyXTsKKyAgICBfaW50ZXJmYWNlLT5zZXR1cEZ1bGxz
Y3JlZW4oKl92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSwgX21lZGlhRWxlbWVudC0+c2NyZWVu
UmVjdCgpKTsKIH0KIAogLSAodm9pZClleGl0RnVsbHNjcmVlbgpAQCAtMTM3LDYgKzE0MCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIF9pbnRlcmZhY2UtPnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3Jl
ZW4oKTsKIH0KIAorLSAodm9pZClkaWRTZXR1cEZ1bGxzY3JlZW4KK3sKKyAgICBfbW9kZWwtPnNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKF92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSk7CisgICAg
X2ludGVyZmFjZS0+ZW50ZXJGdWxsc2NyZWVuKCk7Cit9CisKIC0gKHZvaWQpZGlkRW50ZXJGdWxs
c2NyZWVuCiB7CiB9CkBAIC0xNDQsOSArMTUzLDE3IEBAIHB1YmxpYzoKIC0gKHZvaWQpZGlkRXhp
dEZ1bGxzY3JlZW4KIHsKICAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgX21vZGVsLT5zZXRW
aWRlb0Z1bGxzY3JlZW5MYXllcihuaWwpOworICAgICAgICBfaW50ZXJmYWNlLT5jbGVhbnVwRnVs
bHNjcmVlbigpOworICAgIH0pOworfQorCistICh2b2lkKWRpZENsZWFudXBGdWxsc2NyZWVuCit7
CisgICAgV2ViVGhyZWFkUnVuKF57CiAgICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsKG51bGxwdHIpOwogICAgICAgICBfbW9kZWwtPnNldFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZShudWxscHRyKTsKLSAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3Jl
ZW5MYXllcihudWxscHRyKTsKKyAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihuaWwpOwogICAgICAgICBfbW9kZWwtPnNldE1lZGlhRWxlbWVudChudWxscHRyKTsKICAgICAg
ICAgX2ludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIobnVsbHB0
cik7CiAgICAgICAgIF9tb2RlbCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CmluZGV4IDA5ZjU1ZDkyYjdkNTkyYzQxMzQ3MDhjMTJlOWU5ZTA4ZGIxMTEwOGEuLjEwZjNkMDc1
NzljYmI0NGMyYTc2YzJiZmVhNjNjYTE0NTNmZDg5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCkBAIC00OSw4ICs0OSwxMCBAQCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDsK
IGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcigpIHsgfTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
bnRlckZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVu
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpID0gMDsKIH07
CiAgICAgCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdApAQCAtODUsOCAr
ODcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3Rl
ZEluZGV4KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFjayhi
b29sIGVuYWJsZWQsIEV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVk
RGV2aWNlTmFtZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KFBsYXRmb3JtTGF5ZXImLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0KTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImLCBXZWJDb3JlOjpJbnRSZWN0
IGluaXRpYWxSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCk7CiAgICAg
dmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2Ny
ZWVuKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDQwOTAwOGVmOTc0
OWI5NTE5ZDdiYTk1OTBmZWZkMzBlZmJlZDUyMmUuLjc3NWUyMzkyYmZlYjhkZDJiZGViNDlkZTUy
YWZhZWMxMjk1Yjk3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTY4OCw3
ICs2ODgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRFeHRl
cm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIFttX3ZpZGVvTGF5ZXJDb250
YWluZXIuZ2V0KCkgc2V0SGlkZGVuOmVuYWJsZWRdOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9M
YXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xh
eWVyLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0KQogewogICAgIF9fYmxvY2sgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwogICAgIApA
QCAtNzEwLDYgKzcxMCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAgIFttX3Zp
ZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9SZWN0OnZpZGVvUmVjdF07CiAKICAgICAgICAgbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tjbGFzc0FWUGxheWVyVmlld0NvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoVmlkZW9MYXllcjptX3ZpZGVvTGF5ZXJDb250YWluZXIuZ2V0KCld
KTsKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRy
b2xzOk5PXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0UGxheWVyQ29udHJv
bGxlcjooQVZQbGF5ZXJDb250cm9sbGVyICopcGxheWVyQ29udHJvbGxlcigpXTsKICAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6cGxheWVyQ29udHJvbGxlcigpXTsK
ICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRQbGF5ZXJWaWV3Q29udHJvbGxlcjpt
X3BsYXllclZpZXdDb250cm9sbGVyLmdldCgpXTsKQEAgLTcyNyw0NiArNzI4LDQ1IEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbihQbGF0Zm9y
bUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGRpZE1v
dmVUb1BhcmVudFZpZXdDb250cm9sbGVyOm1fdmlld0NvbnRyb2xsZXIuZ2V0KCldOwogICAgICAg
ICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gbGF5b3V0SWZOZWVkZWRdOwogCi0gICAg
ICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90
ZWN0Mih0aGlzKTsKLQotICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeewotICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZW50ZXJGdWxs
U2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopewotICAgICAgICAg
ICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgICAgICAg
ICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVsbHNjcmVlbigpOwotICAg
ICAgICAgICAgICAgIHByb3RlY3QyLmNsZWFyKCk7Ci0gICAgICAgICAgICB9XTsKLSAgICAgICAg
fSk7Ci0KICAgICAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLQorICAgICAgICAKKyAgICAg
ICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICAgICAgbV9mdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVlbigpOworICAgICAgICAKICAgICAg
ICAgcHJvdGVjdC5jbGVhcigpOwogICAgIH0pOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oKQoreworICAgIF9fYmxvY2sgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOworICAgIAor
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAg
IFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFu
ZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQorICAgICAgICB7CisgICAgICAgICAgICBbbV9wbGF5ZXJW
aWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKKyAgICAgICAgICAg
IGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgICAgICBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICBw
cm90ZWN0LmNsZWFyKCk7CisgICAgICAgIH1dOworICAgIH0pOworfQorCiB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0
IGZpbmFsUmVjdCkKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKLQorICAgIAogICAgIG1fcGxheWVyQ29udHJvbGxl
ci5jbGVhcigpOwogICAgIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIF57CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJh
Y2tDb250cm9sczpOT107CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddLmZy
YW1lID0gZmluYWxSZWN0OwogICAgICAgICBpZiAoW21fdmlkZW9MYXllckNvbnRhaW5lciB2aWRl
b0xheWVyR3Jhdml0eV0gIT0gQVZWaWRlb0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVjdCkKICAgICAg
ICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9MYXllckdyYXZpdHk6QVZWaWRl
b0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVjdF07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9s
bGVyIGV4aXRGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciop
ewotICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwotICAgICAgICAgICAgW21f
d2luZG93IHNldFJvb3RWaWV3Q29udHJvbGxlcjpuaWxdOwotICAgICAgICAgICAgW21fcGxheWVy
Vmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKLSAgICAgICAgICAgIFttX3BsYXllclZp
ZXdDb250cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsKLSAgICAgICAgICAgIG1fcGxh
eWVyVmlld0NvbnRyb2xsZXIgPSBuaWw7Ci0gICAgICAgICAgICBtX3ZpZXdDb250cm9sbGVyID0g
bmlsOwotICAgICAgICAgICAgbV93aW5kb3cgPSBuaWw7Ci0gICAgICAgICAgICBbbV92aWRlb0xh
eWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICAgICAgICAgIG1fdmlkZW9MYXllciA9IG5p
bDsKLSAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgcmVtb3ZlRnJvbVN1cGVybGF5
ZXJdOwotICAgICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRQbGF5ZXJWaWV3Q29u
dHJvbGxlcjpuaWxdOwotICAgICAgICAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gbmlsOwot
CisgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07
CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuV2l0aENvbXBs
ZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopCisgICAgICAgIHsKKyAgICAgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2NsYXNzVUlD
b2xvciBjbGVhckNvbG9yXV07CiAgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIpCiAgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4
aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CkBAIC03NzQsNiAr
Nzc0LDMwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxs
c2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKK3sKKyAg
ICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVj
dCh0aGlzKTsKKyAgICAKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeeworICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CisgICAgICAgIFttX3dp
bmRvdyBzZXRSb290Vmlld0NvbnRyb2xsZXI6bmlsXTsKKyAgICAgICAgW21fcGxheWVyVmlld0Nv
bnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc2V0UGxheWVyQ29udHJvbGxlcjpuaWxdOworICAgICAgICBtX3BsYXllclZpZXdDb250cm9s
bGVyID0gbmlsOworICAgICAgICBtX3ZpZXdDb250cm9sbGVyID0gbmlsOworICAgICAgICBtX3dp
bmRvdyA9IG5pbDsKKyAgICAgICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07
CisgICAgICAgIG1fdmlkZW9MYXllciA9IG5pbDsKKyAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWlu
ZXIgc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6bmlsXTsKKyAgICAgICAgbV92aWRlb0xheWVyQ29u
dGFpbmVyID0gbmlsOworICAgICAgICAKKyAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyKQorICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZENsZWFu
dXBGdWxsc2NyZWVuKCk7CisgICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAgICB9KTsKK30KKwog
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAg
ICAgbV9wbGF5ZXJDb250cm9sbGVyLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApp
bmRleCA2Zjg3M2EwYzY3NjNmYmNmMTQxZjU2ZDJlNDE1NDkzMzk2MjFiMmFiLi5kY2Y5YTE3NmQ1
Mjg0NWVlMjJjZGMyZWI0ZGE4ZGEzZWRiYzExNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKQEAgLTU1LDEzICs1NSwxNSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVsbHNjcmVlbkludGVyZmFjZQotICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0KTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6
SW50UmVjdCBpbml0aWFsUmVjdCk7CiAgICAgdm9pZCBzZXRTZWVrYWJsZVJhbmdlc1ZlY3RvcihW
ZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mKTsKICAgICB2b2lkIHNldEV4dGVybmFs
UGxheWJhY2tQcm9wZXJ0aWVzKGJvb2wgZW5hYmxlZCwgdWludDMyX3QgdGFyZ2V0VHlwZSwgU3Ry
aW5nIGxvY2FsaXplZERldmljZU5hbWUpOwogICAgIAogICAgIC8vIEZ1bGxzY3JlZW4gT2JzZXJ2
ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVs
bHNjcmVlbigpIG92ZXJyaWRlOwogICAgIAogICAgIC8vIEZ1bGxzY3JlZW5Nb2RlbAogICAgIHZp
cnR1YWwgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU4MDFmZjZkZTRiYTZiMWJiZTYyNTkxMDYyZGVkMzhiNTVm
YTQ0ZjUuLjZhZmE0ODFjODg0MDA4YmM2ZWFkOTg1ODg5NGQ3NjExZjk2OTMzYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMCw3ICszMCw5IEBA
IG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RXh0
ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBl
LCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQotICAgIEVu
dGVyRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJl
Y3QgaW5pdGlhbFJlY3QpCisgICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVv
TGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKKyAgICBFbnRlckZ1bGxzY3Jl
ZW4oKQogICAgIEV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorICAg
IENsZWFudXBGdWxsc2NyZWVuKCkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bQppbmRleCAxZmI4ZjNmZThlMTM2ZjIyNGNkNjgxMTFhYmNkNjYwODNkYWIxMzMxLi43NTM3MjQ4
YmNkMjAzZDk2Y2VkZjAwMTVlMjI5OTQzN2JhZTkwNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbQpAQCAtNzEsMTEgKzcxLDExIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjppbnZhbGlkYXRlKCkKICAgICBtX2xheWVySG9zdC5jbGVhcigpOwogfQogCi12b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuV2l0aElEKHVp
bnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWlu
dDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0KQogewogICAg
IEFTU0VSVCh2aWRlb0xheWVySUQpOwogICAgIG1fbGF5ZXJIb3N0ID0gV0tNYWtlUmVuZGVyTGF5
ZXIodmlkZW9MYXllcklEKTsKLSAgICBlbnRlckZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgp
LCBpbml0aWFsUmVjdCk7CisgICAgc2V0dXBGdWxsc2NyZWVuKCptX2xheWVySG9zdC5nZXQoKSwg
aW5pdGlhbFJlY3QpOwogfQogICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3Vi
bGU+PiYgcmFuZ2VzKQpAQCAtMTEyLDYgKzExMiwxNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogICAgIFttX2xheWVySG9zdCByZW1v
dmVGcm9tU3VwZXJsYXllcl07CiAgICAgbV9sYXllckhvc3QuY2xlYXIoKTsKIH0KKyAgICAKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigp
Cit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpEaWRDbGVhbnVwRnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbigpCit7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpEaWRT
ZXR1cEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CiAKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCmluZGV4IDM0OWRkMmYxZWJmOWY2ZTUyZGQ4YzM4MDA3MjIzODI4MjcyYWM0YWYuLmVi
YzlkYjk3ZjZlZTE1MzY5MTgwOTAyZWUzZGI2MGZjYWY2MGFhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LmgKQEAgLTc2LDggKzc2LDEwIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0
ZXJuYWxQbGF5YmFjayhib29sIGVuYWJsZWQsIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZTo6
RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBv
dmVycmlkZTsKIAogICAgIC8vIGFkZGl0aW9uYWwgaW5jb21pbmcKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2V0dXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVl
bigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xh
eWVyR3Jhdml0eUVudW0odW5zaWduZWQpOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGE5OWJiMWVkN2UyYjY4YmFi
Yzg2NzVlMzdlMjcwZWJjYzAxZjU3ODQuLjhiNGQ4ZWY1YjgxOGI4NGUyNjMyMDBlNzdlNjhjMzc5
N2ZjOTZlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzMs
OCArMzMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAg
QmVnaW5TY2FubmluZ0JhY2t3YXJkKCkKICAgICBFbmRTY2FubmluZygpCiAgICAgUmVxdWVzdEV4
aXRGdWxsc2NyZWVuKCkKKyAgICBEaWRTZXR1cEZ1bGxzY3JlZW4oKQogICAgIERpZEV4aXRGdWxs
c2NyZWVuKCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4oKQorICAgIERpZENsZWFudXBGdWxsc2Ny
ZWVuKCkKICAgICBTZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcykK
ICAgICBTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKICAgICBTZWxl
Y3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5k
ZXggMDE3OTczY2MzYjBmNWJmZDk4ZDIwNTg3ZmFkZmZkN2YxZDM1NTcwOS4uOTg3MmFjYzM5NjY1
MjE2YWE2NWU2YTQwZGI4ZjlkNDU2Yzg3NTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0y
MiwyOCArMjIsMjggQEAKICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oIgogCiAjaWYgUExBVEZPUk0oSU9TKQogCi0jaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZS5oIgotI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgotI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvRXZlbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lVmlldy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFZpZGVvRWxlbWVudC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJMYXllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXR0
aW5ncy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQ29yZVRocmVhZFJ1bi5oPgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW1wb3J0ICJXZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVB
bmltYXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
RXZlbnROYW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5
ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UmVuZGVyTGF5ZXJCYWNraW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5o
PgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC05NCwxNSArOTQsOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKICAgICBtX2lzQW5pbWF0
aW5nID0gdHJ1ZTsKICAgICBzZXRNZWRpYUVsZW1lbnQodG9IVE1MTWVkaWFFbGVtZW50KG5vZGUp
KTsKIAotICAgIFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIgPSBbQ0FMYXllciBsYXllcl07Ci0j
aWZuZGVmIE5ERUJVRwotICAgIFt2aWRlb0xheWVyIHNldE5hbWU6QCJXZWIgdmlkZW8gZnVsbHNj
cmVlbiBtYW5hZ2VyIGxheWVyIl07Ci0jZW5kaWYKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQg
PSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7
Ci0gICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIodmlkZW9MYXllcik7Ci0g
ICAgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllcik7Ci0KLSAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsc2Ny
ZWVuV2l0aElEKG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIHNjcmVlblJlY3RG
b3JOb2RlKG5vZGUpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgCisgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVl
bldpdGhJRChtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpLCBzY3JlZW5SZWN0Rm9y
Tm9kZShub2RlKSksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpAQCAtMTY1LDcg
KzE1OSwxOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEV4dGVybmFsUGxh
eWJhY2soYm9vbCBlbmFibGVkLCBXZWJWaWRlb0Z1bGxzYwogewogICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRFeHRlcm5hbFBsYXli
YWNrUHJvcGVydGllcyhlbmFibGVkLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odGFyZ2V0VHlwZSks
IGxvY2FsaXplZERldmljZU5hbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KLQorICAgIAordm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4oKQoreworICAg
IFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIgPSBbQ0FMYXllciBsYXllcl07CisjaWZuZGVmIE5E
RUJVRworICAgIFt2aWRlb0xheWVyIHNldE5hbWU6QCJXZWIgdmlkZW8gZnVsbHNjcmVlbiBtYW5h
Z2VyIGxheWVyIl07CisjZW5kaWYKKyAgICAKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNl
dFJvb3RMYXllcih2aWRlb0xheWVyKTsKKyAgICBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRl
b0xheWVyKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAg
IAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQog
ewogICAgIG1faXNBbmltYXRpbmcgPSBmYWxzZTsKQEAgLTE4NCwxMyArMTkwLDIyIEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIAogdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7CisgICAgc2V0
VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsKTsKKyAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKKworICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIpOworICAgICAgICBtX2xheWVySG9zdGlu
Z0NvbnRleHQgPSBudWxscHRyOworICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CisgICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAgICB9KTsKK30KKyAgICAKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQorewog
ICAgIG1faXNBbmltYXRpbmcgPSBmYWxzZTsKICAgICBtX2lzRnVsbHNjcmVlbiA9IGZhbHNlOwot
Ci0gICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobnVsbHB0cik7Ci0gICAg
bV9sYXllckhvc3RpbmdDb250ZXh0ID0gbnVsbHB0cjsKLSAgICBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihudWxscHRyKTsKLQorICAgIAogICAgIHNldE1lZGlhRWxlbWVudChudWxscHRyKTsKIAog
ICAgIGlmICghbV90YXJnZXRJc0Z1bGxzY3JlZW4pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>