<?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>107509</bug_id>
          
          <creation_ts>2013-01-21 23:28:17 -0800</creation_ts>
          <short_desc>[Mac] Update PageVisibilityState when WebView is hidden / visible</short_desc>
          <delta_ts>2013-01-28 14:47:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmuppala</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812653</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-21 23:28:17 -0800</bug_when>
    <thetext>WK2 does this already. WK1 should match WK2 here and update the page visibility when the WebView is hidden / visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812654</commentid>
    <comment_count>1</comment_count>
      <attachid>183899</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-21 23:33:03 -0800</bug_when>
    <thetext>Created attachment 183899
[PATCH] Update visibility state on window state changes

I&apos;ll think about ways to test this. Maybe I can test this via TestWebKitAPI and minimize / restore the window containing the WebView. I&apos;m open to suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812843</commentid>
    <comment_count>2</comment_count>
      <attachid>183899</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-22 02:43:03 -0800</bug_when>
    <thetext>Comment on attachment 183899
[PATCH] Update visibility state on window state changes

Attachment 183899 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16010918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812883</commentid>
    <comment_count>3</comment_count>
      <attachid>183899</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-22 03:44:54 -0800</bug_when>
    <thetext>Comment on attachment 183899
[PATCH] Update visibility state on window state changes

Attachment 183899 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16038485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813129</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-22 10:14:39 -0800</bug_when>
    <thetext>So this fails on the mac bots because it requires a patch that hasn&apos;t landed yet (it just got reviewed).
&lt;http://webkit.org/b/107230&gt; [Mac] Enable Page Visibility (PAGE_VISIBILITY_API)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814816</commentid>
    <comment_count>5</comment_count>
      <attachid>183899</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-23 16:39:32 -0800</bug_when>
    <thetext>Comment on attachment 183899
[PATCH] Update visibility state on window state changes

I have a better patch in the works with a test for WK1 and WK2. This also requires a patch from:
&lt;http://webkit.org/b/107364&gt; Improve PageVisibility API with enums</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814846</commentid>
    <comment_count>6</comment_count>
      <attachid>184355</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-23 17:00:39 -0800</bug_when>
    <thetext>Created attachment 184355
[PATCH] Now With WK1 + WK2 Tests

Still waiting on earlier patches to be reviewed for this to build on mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815824</commentid>
    <comment_count>7</comment_count>
      <attachid>184355</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-24 14:22:36 -0800</bug_when>
    <thetext>Comment on attachment 184355
[PATCH] Now With WK1 + WK2 Tests

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

So I guess when you switch tabs, we still have to programmatically change page visibility?

What if someone move the view between windows? Let say I minimize Window 1, and some asshat move the view to Window 2?

&gt; Source/WebKit/mac/WebView/WebView.mm:3691
&gt; +- (void)_windowDidMiniaturize:(NSNotification *)notification
&gt; +{
&gt; +    [self _updateVisibilityState];
&gt; +}
&gt; +
&gt; +- (void)_windowDidDeminiaturize:(NSNotification *)notification
&gt; +{
&gt; +    [self _updateVisibilityState];
&gt; +}
&gt; +
&gt; +- (void)_windowDidOrderOnScreen:(NSNotification *)notification
&gt; +{
&gt; +    [self _updateVisibilityState];
&gt; +}
&gt; +
&gt; +- (void)_windowDidOrderOffScreen:(NSNotification *)notification
&gt; +{
&gt; +    [self _updateVisibilityState];
&gt; +}

Why not just make
- (void)_windowVisibilityChanged:
And register all notifications to that?

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:1076
&gt; +				A57A34F016AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm in Sources */,

Build section could be sorted (my new favorite trick to r- patches) :)

&gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:34
&gt; +static bool didGetPageSignal;

The name is a little generic.

&gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:68
&gt; +    virtual NSURL *url() const { return [[NSBundle mainBundle] URLForResource:@&quot;PageVisibilityStateWithWindowChanges&quot; withExtension:@&quot;html&quot; subdirectory:@&quot;TestWebKitAPI.resources&quot;]; }
&gt; +    virtual void didLoadURL(WebView *webView) { runTest(webView); teardownView(webView); }
&gt; +    virtual void didLoadURL(WKView *wkView) { runTest(wkView); teardownView(wkView); }

Not a fan of inline implementation here.
Missing OVERRIDE?

&gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:74
&gt; +    virtual void initializeView(WebView *) OVERRIDE;
&gt; +    virtual void initializeView(WKView *) OVERRIDE;
&gt; +    virtual void teardownView(WebView *);
&gt; +    virtual void teardownView(WKView *);

Style? Missing OVERRIDE?

&gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:79
&gt; +    webView.UIDelegate = [[PageVisibilityStateDelegate alloc] init];

This looks like a leak.

&gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:86
&gt; +    id uiDelegate = webView.UIDelegate;
&gt; +    webView.UIDelegate = nil;
&gt; +    [uiDelegate release];

ahahaha, okay.
Maybe a RetainPtr as an attribute would makes things simpler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815853</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-24 14:50:03 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 184355 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184355&amp;action=review
&gt; 
&gt; So I guess when you switch tabs, we still have to programmatically change page visibility?

Correct, that is a browser level feature, not a WebView level feature.

&gt; What if someone move the view between windows? Let say I minimize Window 1, and some asshat move the view to Window 2?

When the WebView&apos;s superview / window hierarchy changes it will always get -[WebView viewDidMoveToWindow], which will update visibilityState.

&gt; &gt; Source/WebKit/mac/WebView/WebView.mm:3691
&gt; &gt; +- (void)_windowDidMiniaturize:(NSNotification *)notification
&gt; &gt; +{
&gt; &gt; +    [self _updateVisibilityState];
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +- (void)_windowDidDeminiaturize:(NSNotification *)notification
&gt; &gt; +{
&gt; &gt; +    [self _updateVisibilityState];
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +- (void)_windowDidOrderOnScreen:(NSNotification *)notification
&gt; &gt; +{
&gt; &gt; +    [self _updateVisibilityState];
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +- (void)_windowDidOrderOffScreen:(NSNotification *)notification
&gt; &gt; +{
&gt; &gt; +    [self _updateVisibilityState];
&gt; &gt; +}
&gt; 
&gt; Why not just make
&gt; - (void)_windowVisibilityChanged:
&gt; And register all notifications to that?

I thought of that, but I wanted to be as explicit as possible. I&apos;ll make this change.


&gt; &gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:1076
&gt; &gt; +				A57A34F016AF677200C2501F /* PageVisibilityStateWithWindowChanges.mm in Sources */,
&gt; 
&gt; Build section could be sorted (my new favorite trick to r- patches) :)
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:34
&gt; &gt; +static bool didGetPageSignal;
&gt; 
&gt; The name is a little generic.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:68
&gt; &gt; +    virtual NSURL *url() const { return [[NSBundle mainBundle] URLForResource:@&quot;PageVisibilityStateWithWindowChanges&quot; withExtension:@&quot;html&quot; subdirectory:@&quot;TestWebKitAPI.resources&quot;]; }
&gt; &gt; +    virtual void didLoadURL(WebView *webView) { runTest(webView); teardownView(webView); }
&gt; &gt; +    virtual void didLoadURL(WKView *wkView) { runTest(wkView); teardownView(wkView); }
&gt; 
&gt; Not a fan of inline implementation here.
&gt; Missing OVERRIDE?

Inline is the convention here. All other didLoadURL implementations are inlined. I&apos;ll add OVERRIDe.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:74
&gt; &gt; +    virtual void initializeView(WebView *) OVERRIDE;
&gt; &gt; +    virtual void initializeView(WKView *) OVERRIDE;
&gt; &gt; +    virtual void teardownView(WebView *);
&gt; &gt; +    virtual void teardownView(WKView *);
&gt; 
&gt; Style? Missing OVERRIDE?

Nothing to override. This is new. I could upstream an empty impl to WebKitTestAgnostic and call it appropriately. Maybe &quot;deinitializeView&quot;.

&gt; &gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:79
&gt; &gt; +    webView.UIDelegate = [[PageVisibilityStateDelegate alloc] init];
&gt; 
&gt; This looks like a leak.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:86
&gt; &gt; +    id uiDelegate = webView.UIDelegate;
&gt; &gt; +    webView.UIDelegate = nil;
&gt; &gt; +    [uiDelegate release];
&gt; 
&gt; ahahaha, okay.
&gt; Maybe a RetainPtr as an attribute would makes things simpler?

This is exactly why I couldn&apos;t use RetainPtr and added teardownWebView. Because the WebView does not retain the delegate, I had to come up with something hacky. I could add a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816078</commentid>
    <comment_count>9</comment_count>
      <attachid>184636</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-24 18:49:49 -0800</bug_when>
    <thetext>Created attachment 184636
[PATCH] Addressed Review Comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817235</commentid>
    <comment_count>10</comment_count>
      <attachid>184636</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 11:53:09 -0800</bug_when>
    <thetext>Comment on attachment 184636
[PATCH] Addressed Review Comments

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

&gt; Tools/TestWebKitAPI/mac/WebKitAgnosticTest.h:62
&gt; +    virtual void deinitializeView(WebView *) { }
&gt; +    virtual void deinitializeView(WKView *) { }

I&apos;m not a fan of this made up word.  I would prefer cleanupView().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818128</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-28 14:46:12 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 184636 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184636&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/mac/WebKitAgnosticTest.h:62
&gt; &gt; +    virtual void deinitializeView(WebView *) { }
&gt; &gt; +    virtual void deinitializeView(WKView *) { }
&gt; 
&gt; I&apos;m not a fan of this made up word.  I would prefer cleanupView().

As discussed on IRC we went with teardownView since tests normally have setup/teardown naming conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818130</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-28 14:47:02 -0800</bug_when>
    <thetext>Landed r141011: &lt;http://trac.webkit.org/changeset/141011&gt;

In my commit message I forgot to update OOPs to Sam. =( But the ChangeLogs are correct.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183899</attachid>
            <date>2013-01-21 23:33:03 -0800</date>
            <delta_ts>2013-01-23 17:00:39 -0800</delta_ts>
            <desc>[PATCH] Update visibility state on window state changes</desc>
            <filename>wk1-vs-1.patch</filename>
            <type>text/plain</type>
            <size>4558</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA1ODhlOTI2Li5iMjljMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjMgQEAKIDIwMTMtMDEtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcGRhdGUgUGFnZVZpc2libGlpdHlTdGF0ZSB3aGVu
IFdlYlZpZXcgaXMgaGlkZGVuIC8gdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAoLVtXZWJWaWV3IF9pc1ZpZXdWaXNpYmxl
XSk6IENvcGllZCBmcm9tIFdlYktpdDIuCisgICAgICAgICgtW1dlYlZpZXcgX3VwZGF0ZUFjdGl2
ZVN0YXRlQW5kVmlzaWJpbGl0eVN0YXRlXSk6CisgICAgICAgIFVwZGF0ZSBib3RoIHRoZSB2aXNp
YmlsaXR5IHN0YXRlIHdoZW5ldmVyIHRoZSBXZWJWaWV3J3MKKyAgICAgICAgYWN0aXZlIHN0YXRl
IG1pZ2h0IGNoYW5nZS4KKworICAgICAgICAoLVtXZWJWaWV3IHZpZXdEaWRNb3ZlVG9XaW5kb3dd
KToKKyAgICAgICAgKC1bV2ViVmlldyBfd2luZG93Q2hhbmdlZEtleVN0YXRlXSk6CisgICAgICAg
IFVwZGF0ZSBjYWxsIHNpdGVzLgorCisyMDEzLTAxLTIxICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgSW1wcm92ZSBQYWdlVmlzaWJpbGl0eSBBUEkgd2l0
aCBlbnVtcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA3MzY0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4MWIwZTUwLi4z
YjdkNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNjA2LDE1ICsy
NjA2LDMxIEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAgICBT
ZWN1cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCi0r
KHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cworKyAodm9pZClfcmVzZXRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RzCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNz
V2hpdGVsaXN0cygpOwogfQogCi0tICh2b2lkKV91cGRhdGVBY3RpdmVTdGF0ZQorLSAoQk9PTClf
aXNWaWV3VmlzaWJsZQogewotICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFnZSkKKyAg
ICBpZiAoIVtzZWxmIHdpbmRvd10pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
W1tzZWxmIHdpbmRvd10gaXNWaXNpYmxlXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKFtzZWxmIGlzSGlkZGVuT3JIYXNIaWRkZW5BbmNlc3Rvcl0pCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCistICh2b2lkKV91cGRhdGVBY3RpdmVTdGF0
ZUFuZFZpc2liaWxpdHlTdGF0ZQoreworICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFn
ZSkgewogICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEFjdGl2
ZShbW3NlbGYgd2luZG93XSBfaGFzS2V5QXBwZWFyYW5jZV0pOworICAgICAgICBbc2VsZiBfc2V0
VmlzaWJpbGl0eVN0YXRlOihbc2VsZiBfaXNWaWV3VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlVmlzaWJsZSA6IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0
YXRlOk5PXTsKKyAgICB9CiB9CiAKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3Rv
cihOU0FycmF5KiBwYXR0ZXJucykKQEAgLTM1OTAsNyArMzYwNiw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQ
cm9wZXJ0eU9sCiAgICAgCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldERldmljZVNjYWxlRmFjdG9y
KFtzZWxmIF9kZXZpY2VTY2FsZUZhY3Rvcl0pOwogCi0gICAgW3NlbGYgX3VwZGF0ZUFjdGl2ZVN0
YXRlXTsKKyAgICBbc2VsZiBfdXBkYXRlQWN0aXZlU3RhdGVBbmRWaXNpYmlsaXR5U3RhdGVdOwog
fQogCiAtICh2b2lkKWRvV2luZG93RGlkQ2hhbmdlU2NyZWVuCkBAIC0zNjAxLDcgKzM2MTcsNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3Rvcktl
eSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogCiAtICh2b2lkKV93aW5kb3dDaGFuZ2VkS2V5U3Rh
dGUKIHsKLSAgICBbc2VsZiBfdXBkYXRlQWN0aXZlU3RhdGVdOworICAgIFtzZWxmIF91cGRhdGVB
Y3RpdmVTdGF0ZUFuZFZpc2liaWxpdHlTdGF0ZV07CiB9CiAKIC0gKHZvaWQpX3dpbmRvd1dpbGxP
cmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDA2Mjg1MDkuLmMyZjk1OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKQEAgLTMyNSw3ICsz
MjUsNyBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKEJPT0wpX2lzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlOwogCiAvLyBTUEkgZm9yIER1bXBSZW5kZXJUcmVlCi0tICh2b2lk
KV91cGRhdGVBY3RpdmVTdGF0ZTsKKy0gKHZvaWQpX3VwZGF0ZUFjdGl2ZVN0YXRlQW5kVmlzaWJp
bGl0eVN0YXRlOwogCiAvKiEKICAgICBAbWV0aG9kIF9yZWdpc3RlclZpZXdDbGFzczpyZXByZXNl
bnRhdGlvbkNsYXNzOmZvclVSTFNjaGVtZToKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODE4MmE3Li44MDczMzZiIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTMt
MDEtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBb
TWFjXSBVcGRhdGUgUGFnZVZpc2libGlpdHlTdGF0ZSB3aGVuIFdlYlZpZXcgaXMgaGlkZGVuIC8g
dmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA3NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnNldFdpbmRvd0lzS2V5KTogVXBkYXRlIGZvciByZW5hbWVkIG1ldGhvZC4KKworMjAxMy0w
MS0yMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFtN
YWNdIFdLMSBNaW5pQnJvd3NlciBzaG91bGQgY2xlYXIgZGVsZWdhdGVzIGJlZm9yZSByZWxlYXNp
bmcgd2VidmlldwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NTA2CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5k
ZXggYTllNTAxMy4uZDg5ZGQ3YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW0KQEAgLTY2NSw3ICs2NjUsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyUGVyc2lz
dGVudFVzZXJTdHlsZVNoZWV0KCkKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9v
bCB3aW5kb3dJc0tleSkKIHsKICAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Ci0gICAg
W1ttYWluRnJhbWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsKKyAgICBbW21haW5GcmFt
ZSB3ZWJWaWV3XSBfdXBkYXRlQWN0aXZlU3RhdGVBbmRWaXNpYmlsaXR5U3RhdGVdOwogfQogCiB2
b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCg==
</data>
<flag name="review"
          id="202453"
          type_id="1"
          status="-"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="202454"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184355</attachid>
            <date>2013-01-23 17:00:39 -0800</date>
            <delta_ts>2013-01-24 18:49:49 -0800</delta_ts>
            <desc>[PATCH] Now With WK1 + WK2 Tests</desc>
            <filename>wk1-vs-2.patch</filename>
            <type>text/plain</type>
            <size>20363</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCBhOTI0YjFmLi41NWQwOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTMtMDEtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KKworICAgICAgICBbTWFjXSBVcGRhdGUgUGFnZVZpc2liaWxpdHlTdGF0ZSB3aGVu
IFdlYlZpZXcgaXMgaGlkZGVuIC8gdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICBTZXQgdGhlIGluaXRp
YWwgdmlzaWJpbGl0eSBvZiB0aGUgcGFnZS4KKworICAgICAgICAoLVtXZWJWaWV3IGFkZFdpbmRv
d09ic2VydmVyc0ZvcldpbmRvdzpdKToKKyAgICAgICAgKC1bV2ViVmlldyByZW1vdmVXaW5kb3dP
YnNlcnZlcnNdKToKKyAgICAgICAgKC1bV2ViVmlldyBfaXNWaWV3VmlzaWJsZV0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF91cGRhdGVWaXNpYmlsaXR5U3RhdGVdKToKKyAgICAgICAgKC1bV2ViVmll
dyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3dpbmRvd0RpZE1p
bmlhdHVyaXplOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF93aW5kb3dEaWREZW1pbmlhdHVyaXpl
Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjpdKToKKyAgICAgICAgVXBk
YXRlIHZpc2liaWxpdHkgc3RhdGUgaW4gdGhlIHNhbWUgd2F5cyBXSzIgZG9lcy4gVGhpcyBpbnZv
bHZlcworICAgICAgICBsaXN0ZW5pbmcgZm9yIHNvbWUgbmV3IE5TV2luZG93IGRlbGVnYXRlcy4K
KwogMjAxMy0wMS0yMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcHJvdmUgUGFnZVZpc2liaWxpdHkgQVBJIHdpdGggZW51bXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4MWIwZTUwLi43N2FlOTc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03OTMsNiArNzkzLDggQEAgc3RhdGljIGJvb2wgc2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkKIAogICAgIFtzZWxmIF9y
ZWdpc3RlckRyYWdnZWRUeXBlc107CiAKKyAgICBbc2VsZiBfc2V0VmlzaWJpbGl0eVN0YXRlOihb
c2VsZiBfaXNWaWV3VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSA6IFdl
YlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0YXRlOllFU107CisKICAgICBX
ZWJQcmVmZXJlbmNlcyAqcHJlZnMgPSBbc2VsZiBwcmVmZXJlbmNlc107CiAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3RvcihfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOikKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOldlYlByZWZlcmVuY2VzQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIG9iamVjdDpwcmVmc107CkBAIC0yNjA2LDExICsyNjA4
LDMxIEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAgICBTZWN1
cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCi0rKHZv
aWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cworKyAodm9pZClfcmVzZXRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RzCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0cygpOwogfQogCistIChCT09MKV9pc1ZpZXdWaXNpYmxlCit7CisgICAgaWYgKCFbc2Vs
ZiB3aW5kb3ddKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIVtbc2VsZiB3aW5k
b3ddIGlzVmlzaWJsZV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChbc2VsZiBp
c0hpZGRlbk9ySGFzSGlkZGVuQW5jZXN0b3JdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworLSAodm9pZClfdXBkYXRlVmlzaWJpbGl0eVN0YXRlCit7Cisg
ICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5wYWdlKQorICAgICAgICBbc2VsZiBfc2V0Vmlz
aWJpbGl0eVN0YXRlOihbc2VsZiBfaXNWaWV3VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0eVN0
YXRlVmlzaWJsZSA6IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0YXRl
Ok5PXTsKK30KKwogLSAodm9pZClfdXBkYXRlQWN0aXZlU3RhdGUKIHsKICAgICBpZiAoX3ByaXZh
dGUgJiYgX3ByaXZhdGUtPnBhZ2UpCkBAIC0zNTI2LDYgKzM1NDgsMTQgQEAgc3RhdGljIE5TU3Ry
aW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2lu
Z1Byb3BlcnR5T2wKICAgICAgICAgICAgIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX3dpbmRvd0RpZENoYW5nZVNjcmVlbjopCiAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlk
Q2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKF93aW5kb3dEaWRNaW5pYXR1cml6ZTopIAorICAgICAgICAgICAgbmFtZTpOU1dp
bmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2Vs
ZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWREZW1pbmlhdHVyaXplOikKKyAgICAgICAgICAgIG5h
bWU6TlNXaW5kb3dEaWREZW1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwor
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjopIAorICAg
ICAgICAgICAgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9i
amVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9u
U2NyZWVuOikgCisgICAgICAgICAgICBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIg
b2JqZWN0OndpbmRvd107CiAgICAgfQogfQogCkBAIC0zNTQxLDYgKzM1NzEsMTQgQEAgc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5T
QmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgIG5hbWU6d2luZG93RGlkQ2hhbmdlQmFja2lu
Z1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAgICAgICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZgogICAgICAg
ICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlmaWNhdGlvbiBvYmplY3Q6d2lu
ZG93XTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmCisgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZgorICAgICAgICAgICAgbmFtZTpO
U1dpbmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAg
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZgorICAgICAgICAgICAgbmFtZTpAIk5TV2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmlj
YXRpb24iIG9iamVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYKKyAgICAgICAgICAgIG5hbWU6QCJfTlNX
aW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKICAgICB9CiB9CiAKQEAgLTM1
OTEsNiArMzYyOSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9s
ZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgX3ByaXZhdGUtPnBh
Z2UtPnNldERldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9kZXZpY2VTY2FsZUZhY3Rvcl0pOwogCiAg
ICAgW3NlbGYgX3VwZGF0ZUFjdGl2ZVN0YXRlXTsKKyAgICBbc2VsZiBfdXBkYXRlVmlzaWJpbGl0
eVN0YXRlXTsKIH0KIAogLSAodm9pZClkb1dpbmRvd0RpZENoYW5nZVNjcmVlbgpAQCAtMzYzMSw2
ICszNjcwLDI2IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNj
YWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgfQogfQogCistICh2b2lk
KV93aW5kb3dEaWRNaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sK
KyAgICBbc2VsZiBfdXBkYXRlVmlzaWJpbGl0eVN0YXRlXTsKK30KKworLSAodm9pZClfd2luZG93
RGlkRGVtaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBb
c2VsZiBfdXBkYXRlVmlzaWJpbGl0eVN0YXRlXTsKK30KKworLSAodm9pZClfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBbc2VsZiBf
dXBkYXRlVmlzaWJpbGl0eVN0YXRlXTsKK30KKworLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZT
Y3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgX3VwZGF0
ZVZpc2liaWxpdHlTdGF0ZV07Cit9CisKIC0gKHZvaWQpX3dpbmRvd1dpbGxDbG9zZTooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBpZiAoW3NlbGYgc2hvdWxkQ2xvc2VXaXRo
V2luZG93XSAmJiAoW3NlbGYgd2luZG93XSA9PSBbc2VsZiBob3N0V2luZG93XSB8fCAoW3NlbGYg
d2luZG93XSAmJiAhW3NlbGYgaG9zdFdpbmRvd10pIHx8ICghW3NlbGYgd2luZG93XSAmJiBbc2Vs
ZiBob3N0V2luZG93XSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IDA2Mjg1MDkuLmI2MWNiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmgKQEAgLTMyNCw2ICszMjQsMTAgQEAgQ291bGQgYmUgd29ydGggYWRk
aW5nIHRvIHRoZSBBUEkuCiAvLyBJbmRpY2F0ZXMgaWYgdGhlIFdlYlZpZXcgaXMgaW4gdGhlIG1p
ZHN0IG9mIGEgdXNlciBnZXN0dXJlLgogLSAoQk9PTClfaXNQcm9jZXNzaW5nVXNlckdlc3R1cmU7
CiAKKy8vIERldGVybWluaW5nIGFuZCB1cGRhdGluZyBwYWdlIHZpc2liaWxpdHkgc3RhdGUuCist
IChCT09MKV9pc1ZpZXdWaXNpYmxlOworLSAodm9pZClfdXBkYXRlVmlzaWJpbGl0eVN0YXRlOwor
CiAvLyBTUEkgZm9yIER1bXBSZW5kZXJUcmVlCiAtICh2b2lkKV91cGRhdGVBY3RpdmVTdGF0ZTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlm
NTM4YWMuLmJlZTU4NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMy0wMS0yMyAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVwZGF0ZSBQYWdlVmlzaWJpbGl0
eVN0YXRlIHdoZW4gV2ViVmlldyBpcyBoaWRkZW4gLyB2aXNpYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1MDkKKworICAgICAgICBBZGQgYSB0
ZXN0IHRoYXQgUGFnZVZpc2liaWxpdHkgb2YgV0sxIFdlYlZpZXdzIGFuZCBXSzIgV0tWaWV3cwor
ICAgICAgICBhdXRvbWF0aWNhbGx5IGNoYW5nZXMgYmV0d2VlbiBoaWRkZW4gYW5kIHZpc2libGUg
YXMgdGhlIHZpZXcgaXMgYWRkZWQKKyAgICAgICAgYW5kIHJlbW92ZWQgZnJvbSB3aW5kb3csIG9y
IHdoZW4gaXQgaXMgaW4gYSB3aW5kb3cgdGhhdCBjaGFuZ2VzCisgICAgICAgIHZpc2liaWxpdHks
IGZvciBpbnN0YW5jZSBieSBtaW5pbWl6aW5nIC8gZGVtaW5pbWl6aW5nLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1BhZ2VWaXNpYmlsaXR5
U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbTogQWRkZWQuCisgICAgICAgICgtW1BhZ2VWaXNpYmls
aXR5U3RhdGVEZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRBbGVydCk6Cisg
ICAgICAgIChQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzOjp1cmwp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dD
aGFuZ2VzOjpkaWRMb2FkVVJMKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBhZ2VWaXNpYmls
aXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlczo6aW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzOjp0ZWFyZG93
blZpZXcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhX
aW5kb3dDaGFuZ2VzOjpydW5UZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6
CisKIDIwMTMtMDEtMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbXByb3ZlIFBhZ2VWaXNpYmlsaXR5IEFQSSB3aXRoIGVudW1zCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDU4MTc2NmEuLjhmNjBlYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDQsNiArMTA0LDggQEAKIAkJOUI0RjhGQTQxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxD
b2xsZWN0aW9uTmFtZWRJdGVtLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFt
ZWRJdGVtLm1tICovOyB9OwogCQk5QjRGOEZBNzE1OUQ1MkREMDAyRDlGOTQgLyogSFRNTENvbGxl
Y3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjRGOEZBNjE1OUQ1MkNBMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rp
b25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKIAkJQTUxQjY1MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTUxQjY1MDgxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwICovOyB9OworCQlBNTdBMzRGMDE2QUY2NzcyMDBDMjUwMUYgLyogUGFnZVZpc2liaWxp
dHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmls
aXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLzsgfTsKKwkJQTU3QTM0RjIxNkFGNkIyQjAw
QzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1N0EzNEYx
MTZBRjY5RTIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMu
aHRtbCAqLzsgfTsKIAkJQTVFMjAyNzMxNUIyMTgxOTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJW
aWV3V2l0aE1lZGlhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTVFMjAyNzIxNUIyMTgxOTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1l
ZGlhLm1tICovOyB9OwogCQlBNUUyMDI3NTE1QjIxRjZFMDBDMTNFMTQgLyogV2luZG93bGVzc1dl
YlZpZXdXaXRoTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNUUyMDI3MDE1QjIxODA2MDBDMTNFMTQgLyogV2luZG93bGVzc1dl
YlZpZXdXaXRoTWVkaWEuaHRtbCAqLzsgfTsKIAkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8q
IENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tl
ZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLzsgfTsKQEAgLTI0Niw2ICsyNDgsNyBAQAogCQkJ
CUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNv
dXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxN0U3RTA0
MTUxMTE5QzEwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVs
ZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkzM0U3OUUwNjEzN0I1RkQ5MDBF
MzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdp
bmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNkZERERENjE0MjQx
QzZGMDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUyQjhDRjk4MTU4NjhEOTEwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTFBREJFRkUzMTMwQzZBQTEwMEQ2MUQxOSAvKiBzaW1wbGUtYWNj
ZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTM2MSw2
ICszNjQsOCBAQAogCQk5QjRGOEZBMzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25O
YW1lZEl0ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIVE1M
Q29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0
RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTFCNjUwODE2QURGOUIxMDA3QUE1RDkgLyog
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2lu
ZG93Q2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTU3QTM0RjExNkFGNjlFMjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGVXaXRoV2luZG93Q2hhbmdlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gUGFn
ZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmll
d1dpdGhNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gV2luZG93bGVzc1dl
YlZpZXdXaXRoTWVkaWEuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVFMjAy
NzIxNUIyMTgxOTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2luZG93bGVzc1dlYlZpZXdXaXRo
TWVkaWEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QTk2NkRBMTQwRUNDQzgw
MDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcDsg
cGF0aCA9IFdURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzg2LDYgKzc5MSw3IEBACiAJCQkJNEJCNDE2MDExNjgxNUIyNjAw
ODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovLAogCQkJCUUxMjIwRDlG
MTU1QjI1NDgwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5tbSAqLywKIAkJCQk1MTdFN0RGQjE1MTEwRUE2MDBEMEIwMDggLyogTWVtb3J5Q2Fj
aGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tICovLAorCQkJCUE1N0EzNEVGMTZB
RjY3NzIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0g
Ki8sCiAJCQkJMzcyMkM4NjgxNDYxRTAzRTAwQzQ1RDAwIC8qIFJlbmRlcmVkSW1hZ2VGcm9tRE9N
UmFuZ2UubW0gKi8sCiAJCQkJMjYxNTE2RDUxNUIwRTYwNTAwQTJDMjAxIC8qIFNldEFuZFVwZGF0
ZUNhY2hlTW9kZWwubW0gKi8sCiAJCQkJNTJCOENGOTUxNTg2OENGMDAwMjgxMDUzIC8qIFNldERv
Y3VtZW50VVJJLm1tICovLApAQCAtODE1LDYgKzgyMSw3IEBACiAJCQkJOUIyNkZDQjQxNTlEMTVF
NzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovLAogCQkJCUUx
MjIwREM5MTU1QjI4N0QwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sICovLAogCQkJCTUxN0U3RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBN
ZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLywKKwkJCQlB
NTdBMzRGMTE2QUY2OUUyMDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dD
aGFuZ2VzLmh0bWwgKi8sCiAJCQkJNTJCOENGOTQxNTg2OENGMDAwMjgxMDUzIC8qIFNldERvY3Vt
ZW50VVJJLmh0bWwgKi8sCiAJCQkJQzU0MEY3ODMxNTJFNUE3ODAwQTQwQzhDIC8qIHZlcmJvc2VN
YXJrdXAuaHRtbCAqLywKIAkJCQlBNUUyMDI3MDE1QjIxODA2MDBDMTNFMTQgLyogV2luZG93bGVz
c1dlYlZpZXdXaXRoTWVkaWEuaHRtbCAqLywKQEAgLTEwNjYsNiArMTA3Myw3IEBACiAJCQkJMjY1
QUY1NTAxNUQxRTQ4QTAwQjBDQjRBIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDNTFBRkI5OTE2OUY0OUZGMDA5Q0NGNjYgLyogRmluZE1hdGNoZXMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBNTFCNjUwOTE2QURGOUIxMDA3QUE1RDkgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlBNTdBMzRGMDE2QUY2NzcyMDBDMjUwMUYgLyogUGFnZVZp
c2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0
aFdpbmRvd0NoYW5nZXMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1BhZ2VW
aXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjhhMmJkYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRt
bApAQCAtMCwwICsxLDYgQEAKKzxzY3JpcHQ+Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAvLyBTZW5kIGEg
c2lnbmFsIHRvIHRoZSB0ZXN0IGNvbnRyb2xsZXIgdmlhIGFsZXJ0LgorICAgIGFsZXJ0KCd3ZWJr
aXR2aXNpYmlsaXR5Y2hhbmdlJyk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFu
Z2VzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0
ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjliMzQxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0KQEAgLTAsMCArMSwxNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkphdmFTY3JpcHRU
ZXN0LmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJXZWJLaXRBZ25vc3RpY1Rlc3QuaCIK
KyNpbXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLVmlld1ByaXZh
dGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wgZGlkR2V0UGFn
ZVNpZ25hbDsKKworLy8gV2ViS2l0MSBXZWJVSURlbGVnYXRlCisKK0BpbnRlcmZhY2UgUGFnZVZp
c2liaWxpdHlTdGF0ZURlbGVnYXRlIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFBhZ2VWaXNpYmlsaXR5U3RhdGVEZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
KilzZW5kZXIgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKilt
ZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKK3sKKyAgICBkaWRHZXRQ
YWdlU2lnbmFsID0gdHJ1ZTsKK30KKworQGVuZAorCisvLyBXZWJLaXQyIFdLUGFnZVVJQ2xpZW50
CisKK3N0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIGRpZEdldFBhZ2VTaWduYWwgPSB0cnVlOworfQorCisvLyBXZWJLaXRBZ25vc3Rp
Y1Rlc3QKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBQYWdlVmlzaWJpbGl0
eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMgOiBwdWJsaWMgV2ViS2l0QWdub3N0aWNUZXN0IHsKK3B1
YmxpYzoKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4gdm9pZCBydW5UZXN0KFZpZXcpOwor
CisgICAgLy8gV2ViS2l0QWdub3N0aWNUZXN0CisgICAgdmlydHVhbCBOU1VSTCAqdXJsKCkgY29u
c3QgeyByZXR1cm4gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlBhZ2VW
aXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkTG9hZFVSTChXZWJWaWV3ICp3ZWJWaWV3KSB7IHJ1blRlc3Qod2ViVmlldyk7IHRlYXJk
b3duVmlldyh3ZWJWaWV3KTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRMb2FkVVJMKFdLVmlldyAq
d2tWaWV3KSB7IHJ1blRlc3Qod2tWaWV3KTsgdGVhcmRvd25WaWV3KHdrVmlldyk7IH0KKworICAg
IC8vIFNldHVwIGFuZCB0ZWFyZG93biB0aGUgVUlEZWxlZ2F0ZSB3aGljaCBnZXRzIGFsZXJ0KCkg
c2lnbmFscyBmcm9tIHRoZSBwYWdlLgorICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmlldyhX
ZWJWaWV3ICopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmlldyhXS1Zp
ZXcgKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRlYXJkb3duVmlldyhXZWJWaWV3ICop
OworICAgIHZpcnR1YWwgdm9pZCB0ZWFyZG93blZpZXcoV0tWaWV3ICopOworfTsKKwordm9pZCBQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXM6OmluaXRpYWxpemVWaWV3KFdlYlZp
ZXcgKndlYlZpZXcpCit7CisgICAgd2ViVmlldy5VSURlbGVnYXRlID0gW1tQYWdlVmlzaWJpbGl0
eVN0YXRlRGVsZWdhdGUgYWxsb2NdIGluaXRdOworfQorCit2b2lkIFBhZ2VWaXNpYmlsaXR5U3Rh
dGVXaXRoV2luZG93Q2hhbmdlczo6dGVhcmRvd25WaWV3KFdlYlZpZXcgKndlYlZpZXcpCit7Cisg
ICAgaWQgdWlEZWxlZ2F0ZSA9IHdlYlZpZXcuVUlEZWxlZ2F0ZTsKKyAgICB3ZWJWaWV3LlVJRGVs
ZWdhdGUgPSBuaWw7CisgICAgW3VpRGVsZWdhdGUgcmVsZWFzZV07Cit9CisKK3ZvaWQgUGFnZVZp
c2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzOjppbml0aWFsaXplVmlldyhXS1ZpZXcgKndr
VmlldykKK3sKKyAgICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xp
ZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKKyAgICB1aUNsaWVudC52ZXJzaW9uID0gMDsKKyAg
ICB1aUNsaWVudC5jbGllbnRJbmZvID0gMDsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxl
cnQgPSBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdrVmll
dy5wYWdlUmVmLCAmdWlDbGllbnQpOworfQorCit2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRo
V2luZG93Q2hhbmdlczo6dGVhcmRvd25WaWV3KFdLVmlldyAqd2tWaWV3KQoreworICAgIC8vIFdl
IGRvIG5vdCBuZWVkIHRvIHRlYXJkb3duIHRoZSBXS1BhZ2VVSUNsaWVudC4KK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIFZpZXc+Cit2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hh
bmdlczo6cnVuVGVzdChWaWV3IHZpZXcpCit7CisgICAgLy8gVGhpcyBXZWJWaWV3IGRvZXMgbm90
IGhhdmUgYSB3aW5kb3cgYW5kIHN1cGVydmlldy4gUGFnZVZpc2liaWxpdHkgc2hvdWxkIGJlICJo
aWRkZW4iLgorICAgIEVYUEVDVF9OVUxMKFt2aWV3IHdpbmRvd10pOworICAgIEVYUEVDVF9OVUxM
KFt2aWV3IHN1cGVydmlld10pOworICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQud2Vi
a2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworCisgICAgLy8gQWRkIGl0IHRvIGEgbm9u
LXZpc2libGUgd2luZG93LiBQYWdlVmlzaWJpbGl0eSBzaG91bGQgc3RpbGwgYmUgImhpZGRlbiIu
CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3coQWRvcHROUywgW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDp2aWV3LmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAg
IFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmlldzp2aWV3XTsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwoW3ZpZXcgd2luZG93XSk7CisgICAgRVhQRUNUX05PVF9OVUxMKFt2aWV3IHN1cGVy
dmlld10pOworICAgIEVYUEVDVF9GQUxTRShbd2luZG93LmdldCgpIGlzVmlzaWJsZV0pOworICAg
IEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgImhp
ZGRlbiIpOworCisgICAgLy8gTWFrZSB0aGUgd2luZG93IHZpc2libGUuIFBhZ2VWaXNpYmlsaXR5
IHNob3VsZCBiZWNvbWUgInZpc2libGUiLgorICAgIGRpZEdldFBhZ2VTaWduYWwgPSBmYWxzZTsg
ICAgCisgICAgW3dpbmRvdy5nZXQoKSBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOworICAgIEVY
UEVDVF9UUlVFKFt3aW5kb3cuZ2V0KCkgaXNWaXNpYmxlXSk7CisgICAgVXRpbDo6cnVuKCZkaWRH
ZXRQYWdlU2lnbmFsKTsKKyAgICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LndlYmtpdFZp
c2liaWxpdHlTdGF0ZSIsICJ2aXNpYmxlIik7CisKKyAgICAvLyBNaW5pbWl6ZSB0aGUgd2luZG93
LiBQYWdlVmlzaWJpbGl0eSBzaG91bGQgYmVjb21lICJoaWRkZW4iLgorICAgIGRpZEdldFBhZ2VT
aWduYWwgPSBmYWxzZTsKKyAgICBbd2luZG93LmdldCgpIG1pbmlhdHVyaXplOm5pbF07CisgICAg
VXRpbDo6cnVuKCZkaWRHZXRQYWdlU2lnbmFsKTsKKyAgICBFWFBFQ1RfSlNfRVEodmlldywgImRv
Y3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsICJoaWRkZW4iKTsKKworICAgIC8vIERlbWlu
aW1pemUgdGhlIHdpbmRvdy4gUGFnZVZpc2liaWxpdHkgc2hvdWxkIGJlY29tZSAidmlzaWJsZSIu
CisgICAgZGlkR2V0UGFnZVNpZ25hbCA9IGZhbHNlOworICAgIFt3aW5kb3cuZ2V0KCkgZGVtaW5p
YXR1cml6ZTpuaWxdOworICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbCk7CisgICAgRVhQ
RUNUX0pTX0VRKHZpZXcsICJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAidmlzaWJs
ZSIpOworCisgICAgLy8gUmVtb3ZlIHRoZSBXZWJWaWV3IGZyb20gaXRzIHN1cGVydmlldy4gUGFn
ZVZpc2liaWxpdHkgc2hvdWxkIGJlY29tZSAiaGlkZGVuIi4KKyAgICBkaWRHZXRQYWdlU2lnbmFs
ID0gZmFsc2U7CisgICAgW3ZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgRVhQRUNUX05V
TEwoW3ZpZXcgd2luZG93XSk7CisgICAgRVhQRUNUX05VTEwoW3ZpZXcgc3VwZXJ2aWV3XSk7Cisg
ICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVdKTsKKyAgICBVdGlsOjpydW4o
JmRpZEdldFBhZ2VTaWduYWwpOworICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQud2Vi
a2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworfQorICAgIAorVEVTVF9GKFBhZ2VWaXNp
YmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcywgV2ViS2l0KQoreworICAgIHJ1bldlYktpdDFU
ZXN0KCk7Cit9CisKK1RFU1RfRihQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMs
IFdlYktpdDIpCit7CisgICAgcnVuV2ViS2l0MVRlc3QoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQo=
</data>
<flag name="commit-queue"
          id="203064"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184636</attachid>
            <date>2013-01-24 18:49:49 -0800</date>
            <delta_ts>2013-01-26 11:53:09 -0800</delta_ts>
            <desc>[PATCH] Addressed Review Comments</desc>
            <filename>wk1-auto-2.patch</filename>
            <type>text/plain</type>
            <size>22201</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA0NzY3NWIyLi5jMGMxNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjYgQEAKIDIwMTMtMDEtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcGRhdGUgUGFnZVZpc2liaWxpdHlTdGF0ZSB3aGVu
IFdlYlZpZXcgaXMgaGlkZGVuIC8gdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICBTZXQgdGhlIGluaXRp
YWwgdmlzaWJpbGl0eSBvZiB0aGUgcGFnZS4KKworICAgICAgICAoLVtXZWJWaWV3IGFkZFdpbmRv
d09ic2VydmVyc0ZvcldpbmRvdzpdKToKKyAgICAgICAgKC1bV2ViVmlldyByZW1vdmVXaW5kb3dP
YnNlcnZlcnNdKToKKyAgICAgICAgKC1bV2ViVmlldyBfaXNWaWV3VmlzaWJsZV0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF91cGRhdGVWaXNpYmlsaXR5U3RhdGVdKToKKyAgICAgICAgKC1bV2ViVmll
dyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3dpbmRvd1Zpc2li
aWxpdHlDaGFuZ2VkOl0pOgorICAgICAgICBVcGRhdGUgdmlzaWJpbGl0eSBzdGF0ZSBpbiB0aGUg
c2FtZSB3YXlzIFdLMiBkb2VzLiBUaGlzIGludm9sdmVzCisgICAgICAgIGxpc3RlbmluZyBmb3Ig
c29tZSBuZXcgTlNXaW5kb3cgZGVsZWdhdGVzLgorCisyMDEzLTAxLTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgSW1wcm92ZSBQYWdlVmlzaWJpbGl0
eSBBUEkgd2l0aCBlbnVtcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA3MzY0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBm
MTNlNWI1Li5jN2E3YWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04
MTAsNiArODEwLDggQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKCkKIAogICAgIFtzZWxmIF9yZWdpc3RlckRyYWdnZWRUeXBlc107CiAKKyAg
ICBbc2VsZiBfc2V0VmlzaWJpbGl0eVN0YXRlOihbc2VsZiBfaXNWaWV3VmlzaWJsZV0gPyBXZWJQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSA6IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4p
IGlzSW5pdGlhbFN0YXRlOllFU107CisKICAgICBXZWJQcmVmZXJlbmNlcyAqcHJlZnMgPSBbc2Vs
ZiBwcmVmZXJlbmNlc107CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfcHJlZmVyZW5jZXNDaGFuZ2Vk
Tm90aWZpY2F0aW9uOikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOldlYlByZWZlcmVuY2VzQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIG9i
amVjdDpwcmVmc107CkBAIC0yNjIzLDExICsyNjI1LDMxIEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdl
dE1ldGhvZChpZCBvLCBTRUwgcykKICAgICBTZWN1cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJj
ZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCi0rKHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0cworKyAodm9pZClfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzCiB7CiAgICAgU2VjdXJp
dHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQogCistIChCT09MKV9p
c1ZpZXdWaXNpYmxlCit7CisgICAgaWYgKCFbc2VsZiB3aW5kb3ddKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIVtbc2VsZiB3aW5kb3ddIGlzVmlzaWJsZV0pCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChbc2VsZiBpc0hpZGRlbk9ySGFzSGlkZGVuQW5jZXN0b3Jd
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLSAodm9p
ZClfdXBkYXRlVmlzaWJpbGl0eVN0YXRlCit7CisgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRl
LT5wYWdlKQorICAgICAgICBbc2VsZiBfc2V0VmlzaWJpbGl0eVN0YXRlOihbc2VsZiBfaXNWaWV3
VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSA6IFdlYlBhZ2VWaXNpYmls
aXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0YXRlOk5PXTsKK30KKwogLSAodm9pZClfdXBkYXRl
QWN0aXZlU3RhdGUKIHsKICAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUtPnBhZ2UpCkBAIC0z
NTQzLDYgKzM1NjUsMTQgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5
T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgICAgIG5h
bWU6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0Ondp
bmRvd107CiAgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZVNjcmVlbjop
CiAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9i
amVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dWaXNpYmlsaXR5
Q2hhbmdlZDopIAorICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZp
Y2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dW
aXNpYmlsaXR5Q2hhbmdlZDopCisgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1
cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rv
cihfd2luZG93VmlzaWJpbGl0eUNoYW5nZWQ6KSAKKyAgICAgICAgICAgIG5hbWU6QCJOU1dpbmRv
d0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKKyAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3Rvcihfd2luZG93VmlzaWJpbGl0eUNoYW5nZWQ6KSAKKyAgICAgICAgICAg
IG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKICAgICB9
CiB9CiAKQEAgLTM1NTgsNiArMzU4OCwxNCBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNr
aW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAg
ICAgICAgICAgbmFtZTp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllc05vdGlmaWNhdGlv
biBvYmplY3Q6d2luZG93XTsKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmCiAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlk
Q2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYKKyAgICAg
ICAgICAgIG5hbWU6TlNXaW5kb3dEaWRNaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2lu
ZG93XTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmCisgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmCisgICAgICAgICAgICBuYW1l
OkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107
CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZgorICAgICAgICAgICAgbmFtZTpAIl9OU1dpbmRvd0RpZEJlY29tZVZpc2libGUi
IG9iamVjdDp3aW5kb3ddOwogICAgIH0KIH0KIApAQCAtMzYwOCw2ICszNjQ2LDcgQEAgc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5T
QmFja2luZ1Byb3BlcnR5T2wKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0
b3IoW3NlbGYgX2RldmljZVNjYWxlRmFjdG9yXSk7CiAKICAgICBbc2VsZiBfdXBkYXRlQWN0aXZl
U3RhdGVdOworICAgIFtzZWxmIF91cGRhdGVWaXNpYmlsaXR5U3RhdGVdOwogfQogCiAtICh2b2lk
KWRvV2luZG93RGlkQ2hhbmdlU2NyZWVuCkBAIC0zNjQ4LDYgKzM2ODcsMTEgQEAgc3RhdGljIE5T
U3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFj
a2luZ1Byb3BlcnR5T2wKICAgICB9CiB9CiAKKy0gKHZvaWQpX3dpbmRvd1Zpc2liaWxpdHlDaGFu
Z2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFtzZWxmIF91cGRhdGVW
aXNpYmlsaXR5U3RhdGVdOworfQorCiAtICh2b2lkKV93aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKFtzZWxmIHNob3VsZENsb3NlV2l0aFdp
bmRvd10gJiYgKFtzZWxmIHdpbmRvd10gPT0gW3NlbGYgaG9zdFdpbmRvd10gfHwgKFtzZWxmIHdp
bmRvd10gJiYgIVtzZWxmIGhvc3RXaW5kb3ddKSB8fCAoIVtzZWxmIHdpbmRvd10gJiYgW3NlbGYg
aG9zdFdpbmRvd10pKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUu
aAppbmRleCAyMWJhZjQ2Li4yZGViZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCkBAIC0zMjQsNiArMzI0LDEwIEBAIENvdWxkIGJlIHdvcnRoIGFkZGlu
ZyB0byB0aGUgQVBJLgogLy8gSW5kaWNhdGVzIGlmIHRoZSBXZWJWaWV3IGlzIGluIHRoZSBtaWRz
dCBvZiBhIHVzZXIgZ2VzdHVyZS4KIC0gKEJPT0wpX2lzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlOwog
CisvLyBEZXRlcm1pbmluZyBhbmQgdXBkYXRpbmcgcGFnZSB2aXNpYmlsaXR5IHN0YXRlLgorLSAo
Qk9PTClfaXNWaWV3VmlzaWJsZTsKKy0gKHZvaWQpX3VwZGF0ZVZpc2liaWxpdHlTdGF0ZTsKKwog
Ly8gU1BJIGZvciBEdW1wUmVuZGVyVHJlZQogLSAodm9pZClfdXBkYXRlQWN0aXZlU3RhdGU7CiAK
QEAgLTY1MCw5ICs2NTQsNiBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KICAq
LwogKyAodm9pZClfc2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkOihCT09MKWVuYWJsZWQ7CiAKLS8v
IFNQSSBmb3IgRHVtcFJlbmRlclRyZWUKLS0gKHZvaWQpX3NldFZpc2liaWxpdHlTdGF0ZTooaW50
KXZpc2liaWxpdHlTdGF0ZSBpc0luaXRpYWxTdGF0ZTooQk9PTClpc0luaXRpYWxTdGF0ZTsKLQog
QGVuZAogCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZpZXdQcmludGluZ1ByaXZhdGUpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxMmQ3M2Uu
LjA5MjkyZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsNSArMSwzNiBAQAogMjAxMy0wMS0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwZGF0ZSBQYWdlVmlzaWJpbGl0eVN0YXRl
IHdoZW4gV2ViVmlldyBpcyBoaWRkZW4gLyB2aXNpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc1MDkKKworICAgICAgICBBZGQgYSB0ZXN0IHRo
YXQgUGFnZVZpc2liaWxpdHkgb2YgV0sxIFdlYlZpZXdzIGFuZCBXSzIgV0tWaWV3cworICAgICAg
ICBhdXRvbWF0aWNhbGx5IGNoYW5nZXMgYmV0d2VlbiBoaWRkZW4gYW5kIHZpc2libGUgYXMgdGhl
IHZpZXcgaXMgYWRkZWQKKyAgICAgICAgYW5kIHJlbW92ZWQgZnJvbSB3aW5kb3csIG9yIHdoZW4g
aXQgaXMgaW4gYSB3aW5kb3cgdGhhdCBjaGFuZ2VzCisgICAgICAgIHZpc2liaWxpdHksIGZvciBp
bnN0YW5jZSBieSBtaW5pbWl6aW5nIC8gZGVtaW5pbWl6aW5nLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1BhZ2VWaXNpYmlsaXR5U3RhdGVX
aXRoV2luZG93Q2hhbmdlcy5tbTogQWRkZWQuCisgICAgICAgICgtW1BhZ2VWaXNpYmlsaXR5U3Rh
dGVEZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5p
dGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAg
IChQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzOjppbml0aWFsaXpl
Vmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdp
bmRvd0NoYW5nZXM6OmRlaW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzOjpydW5UZXN0KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgIFRlc3QgdmlzaWJpbGl0eSBzdGF0ZSBv
ZiBhIHBhZ2UgaW4gYSBXZWJWaWV3L1dLVmlldyB3aXRoIGRpZmZlcmVudCB3aW5kb3cgc3RhdGVz
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0Lmg6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0Lm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0QWdub3N0aWNUZXN0OjpkZWluaXRpYWxpemVWaWV3KToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdEFnbm9zdGljVGVzdDo6cnVuV2ViS2l0MVRl
c3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0QWdub3N0aWNUZXN0OjpydW5XZWJL
aXQyVGVzdCk6CisgICAgICAgIEFkZCBhIFdLMSBhbmQgV0syIGRlaW5pdGlhbGl6ZVZpZXcgdG8g
YmFsYW5jZSBpbml0aWFsaXplVmlldy4KKworMjAxMy0wMS0yNCAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIEltcHJvdmUgUGFnZVZpc2liaWxpdHkgQVBJ
IHdpdGggZW51bXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNzM2NAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYzOTMxYWIuLmU4YjJiNzAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDQsNiArMTA0LDggQEAKIAkJOUI0RjhGQTQx
NTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0RjhGQTMxNTlENTJCMTAwMkQ5
Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovOyB9OwogCQk5QjRGOEZBNzE1OUQ1
MkREMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjRGOEZBNjE1OUQ1MkNB
MDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsKIAkJQTUxQjY1
MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUxQjY1MDgxNkFERjlCMTAwN0FB
NUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9OworCQlBNTdBMzRGMDE2QUY2Nzcy
MDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3QTM0RUYxNkFGNjc3
MjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLzsg
fTsKKwkJQTU3QTM0RjIxNkFGNkIyQjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRo
V2luZG93Q2hhbmdlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1N0EzNEYxMTZBRjY5RTIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0
eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCAqLzsgfTsKIAkJQTVFMjAyNzMxNUIyMTgxOTAw
QzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVFMjAyNzIxNUIyMTgxOTAwQzEzRTE0IC8q
IFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tICovOyB9OwogCQlBNUUyMDI3NTE1QjIxRjZF
MDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUUyMDI3MDE1QjIxODA2
MDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCAqLzsgfTsKIAkJQTdB
OTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E5NjZEQTE0
MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLzsgfTsK
QEAgLTI0Niw2ICsyNDgsNyBAQAogCQkJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1v
cnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTUxN0U3RTA0MTUxMTE5QzEwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBy
dW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkzM0U3OUUwNjEzN0I1RkQ5MDBFMzJEOTkgLyogbW91c2UtbW92ZS1saXN0ZW5lci5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlGNkZERERENjE0MjQxQzZGMDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUyQjhDRjk4MTU4NjhEOTEwMDI4MTA1MyAvKiBTZXRE
b2N1bWVudFVSSS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBREJFRkUzMTMwQzZB
QTEwMEQ2MUQxOSAvKiBzaW1wbGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKQEAgLTM2MSw2ICszNjQsOCBAQAogCQk5QjRGOEZBMzE1OUQ1MkIxMDAy
RDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xs
ZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBIVE1MQ29s
bGVjdGlvbk5hbWVkSXRlbS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTFC
NjUwODE2QURGOUIxMDA3QUE1RDkgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdl
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTU3QTM0RjExNkFGNjlFMjAwQzI1
MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2Vz
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1RTIwMjcwMTVCMjE4MDYwMEMx
M0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTVFMjAyNzIxNUIyMTgxOTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NX
ZWJWaWV3V2l0aE1lZGlhLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJh
dGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2hlY2tlZEFy
aXRobWV0aWNPcGVyYXRpb25zLmNwcDsgcGF0aCA9IFdURi9DaGVja2VkQXJpdGhtZXRpY09wZXJh
dGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzg2LDYgKzc5MSw3IEBA
CiAJCQkJNEJCNDE2MDExNjgxNUIyNjAwODI0MjM4IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZy
YW1lLm1tICovLAogCQkJCUUxMjIwRDlGMTU1QjI1NDgwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURp
c2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLywKIAkJCQk1MTdFN0RGQjE1MTEw
RUE2MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRl
Lm1tICovLAorCQkJCUE1N0EzNEVGMTZBRjY3NzIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0gKi8sCiAJCQkJMzcyMkM4NjgxNDYxRTAzRTAwQzQ1RDAw
IC8qIFJlbmRlcmVkSW1hZ2VGcm9tRE9NUmFuZ2UubW0gKi8sCiAJCQkJMjYxNTE2RDUxNUIwRTYw
NTAwQTJDMjAxIC8qIFNldEFuZFVwZGF0ZUNhY2hlTW9kZWwubW0gKi8sCiAJCQkJNTJCOENGOTUx
NTg2OENGMDAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLm1tICovLApAQCAtODE1LDYgKzgyMSw3
IEBACiAJCQkJOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sICovLAogCQkJCUUxMjIwREM5MTU1QjI4N0QwMDEzRTJGQyAvKiBNZW1vcnlD
YWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovLAogCQkJCTUxN0U3
RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2Fk
RGVsZWdhdGUuaHRtbCAqLywKKwkJCQlBNTdBMzRGMTE2QUY2OUUyMDBDMjUwMUYgLyogUGFnZVZp
c2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi8sCiAJCQkJNTJCOENGOTQxNTg2
OENGMDAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi8sCiAJCQkJQzU0MEY3ODMxNTJF
NUE3ODAwQTQwQzhDIC8qIHZlcmJvc2VNYXJrdXAuaHRtbCAqLywKIAkJCQlBNUUyMDI3MDE1QjIx
ODA2MDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCAqLywKQEAgLTEw
MTYsNiArMTAyMyw3IEBACiAJCQkJQkM5MDk3N0ExMjU1NzFBQjAwMDgzNzU2IC8qIFBhZ2VMb2Fk
QmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyRDAwNDkxMkE5RkRGQTAwRTczMkEzIC8q
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxQjY1MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTU3QTM0RjAxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUyRTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzU3NUJDMDEyNkY1NzUyMDA2RjBGMTIgLyogUGxhdGZvcm1VdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMzE4ODUxMTcxMTRCNjAwQjY5NzI3IC8qIFBsYXRmb3Jt
VXRpbGl0aWVzTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1BhZ2VWaXNpYmlsaXR5U3RhdGVXaXRo
V2luZG93Q2hhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhh
MmJkYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Q
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbApAQCAtMCwwICsxLDYgQEAK
KzxzY3JpcHQ+Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5Y2hh
bmdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAvLyBTZW5kIGEgc2lnbmFsIHRvIHRoZSB0ZXN0
IGNvbnRyb2xsZXIgdmlhIGFsZXJ0LgorICAgIGFsZXJ0KCd3ZWJraXR2aXNpYmlsaXR5Y2hhbmdl
Jyk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2Vz
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMGQ0YzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0KQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkphdmFTY3JpcHRUZXN0LmgiCisjaW1wb3J0ICJU
ZXN0LmgiCisjaW1wb3J0ICJXZWJLaXRBZ25vc3RpY1Rlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9X
ZWJWaWV3Lmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWU7
CisKKy8vIFdlYktpdDEgV2ViVUlEZWxlZ2F0ZQorCitAaW50ZXJmYWNlIFBhZ2VWaXNpYmlsaXR5
U3RhdGVEZWxlZ2F0ZSA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQYWdlVmlz
aWJpbGl0eVN0YXRlRGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVy
IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBp
bml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkR2V0UGFnZVNpZ25h
bFRvQ29udGludWUgPSB0cnVlOworfQorCitAZW5kCisKKy8vIFdlYktpdDIgV0tQYWdlVUlDbGll
bnQKKworc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCit7CisgICAgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOworfQorCisvLyBX
ZWJLaXRBZ25vc3RpY1Rlc3QKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMgOiBwdWJsaWMgV2ViS2l0QWdub3N0
aWNUZXN0IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4gdm9pZCBydW5U
ZXN0KFZpZXcpOworCisgICAgLy8gV2ViS2l0QWdub3N0aWNUZXN0CisgICAgdmlydHVhbCBOU1VS
TCAqdXJsKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIlBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZFVSTChXZWJWaWV3ICp3ZWJWaWV3KSBPVkVS
UklERSB7IHJ1blRlc3Qod2ViVmlldyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZFVSTChX
S1ZpZXcgKndrVmlldykgT1ZFUlJJREUgeyBydW5UZXN0KHdrVmlldyk7IH0KKworICAgIC8vIFNl
dHVwIGFuZCB0ZWFyZG93biB0aGUgVUlEZWxlZ2F0ZSB3aGljaCBnZXRzIGFsZXJ0KCkgc2lnbmFs
cyBmcm9tIHRoZSBwYWdlLgorICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmlldyhXZWJWaWV3
ICopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmlldyhXS1ZpZXcgKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlaW5pdGlhbGl6ZVZpZXcoV2ViVmlldyAqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVpbml0aWFsaXplVmlldyhXS1ZpZXcgKikgT1ZF
UlJJREU7Cit9OworCit2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlczo6
aW5pdGlhbGl6ZVZpZXcoV2ViVmlldyAqd2ViVmlldykKK3sKKyAgICAvLyBSZWxlYXNlZCBpbiBk
ZWluaXRpYWxpemVWaWV3LgorICAgIHdlYlZpZXcuVUlEZWxlZ2F0ZSA9IFtbUGFnZVZpc2liaWxp
dHlTdGF0ZURlbGVnYXRlIGFsbG9jXSBpbml0XTsKK30KKwordm9pZCBQYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXM6OmRlaW5pdGlhbGl6ZVZpZXcoV2ViVmlldyAqd2ViVmlldykK
K3sKKyAgICBpZCB1aURlbGVnYXRlID0gd2ViVmlldy5VSURlbGVnYXRlOworICAgIHdlYlZpZXcu
VUlEZWxlZ2F0ZSA9IG5pbDsKKyAgICBbdWlEZWxlZ2F0ZSByZWxlYXNlXTsKK30KKwordm9pZCBQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXM6OmluaXRpYWxpemVWaWV3KFdLVmll
dyAqd2tWaWV3KQoreworICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50OworICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworICAgIHVpQ2xpZW50LnZlcnNpb24gPSAw
OworICAgIHVpQ2xpZW50LmNsaWVudEluZm8gPSAwOworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3Jp
cHRBbGVydCA9IHJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
d2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7Cit9CisKK3ZvaWQgUGFnZVZpc2liaWxpdHlTdGF0
ZVdpdGhXaW5kb3dDaGFuZ2VzOjpkZWluaXRpYWxpemVWaWV3KFdLVmlldyAqd2tWaWV3KQorewor
ICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGRlaW5pdGlhbGl6ZSB0aGUgV0tQYWdlVUlDbGllbnQu
Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBWaWV3Pgordm9pZCBQYWdlVmlzaWJpbGl0eVN0YXRl
V2l0aFdpbmRvd0NoYW5nZXM6OnJ1blRlc3QoVmlldyB2aWV3KQoreworICAgIC8vIFRoaXMgV2Vi
VmlldyBkb2VzIG5vdCBoYXZlIGEgd2luZG93IGFuZCBzdXBlcnZpZXcuIFBhZ2VWaXNpYmlsaXR5
IHNob3VsZCBiZSAiaGlkZGVuIi4KKyAgICBFWFBFQ1RfTlVMTChbdmlldyB3aW5kb3ddKTsKKyAg
ICBFWFBFQ1RfTlVMTChbdmlldyBzdXBlcnZpZXddKTsKKyAgICBFWFBFQ1RfSlNfRVEodmlldywg
ImRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsICJoaWRkZW4iKTsKKworICAgIC8vIEFk
ZCBpdCB0byBhIG5vbi12aXNpYmxlIHdpbmRvdy4gUGFnZVZpc2liaWxpdHkgc2hvdWxkIHN0aWxs
IGJlICJoaWRkZW4iLgorICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93KEFkb3B0TlMsIFtb
TlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6
TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dKTsKKyAgICBbd2luZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6dmlld107
CisgICAgRVhQRUNUX05PVF9OVUxMKFt2aWV3IHdpbmRvd10pOworICAgIEVYUEVDVF9OT1RfTlVM
TChbdmlldyBzdXBlcnZpZXddKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dpbmRvdy5nZXQoKSBpc1Zp
c2libGVdKTsKKyAgICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LndlYmtpdFZpc2liaWxp
dHlTdGF0ZSIsICJoaWRkZW4iKTsKKworICAgIC8vIE1ha2UgdGhlIHdpbmRvdyB2aXNpYmxlLiBQ
YWdlVmlzaWJpbGl0eSBzaG91bGQgYmVjb21lICJ2aXNpYmxlIi4KKyAgICBkaWRHZXRQYWdlU2ln
bmFsVG9Db250aW51ZSA9IGZhbHNlOyAgICAKKyAgICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRP
cmRlckZyb250Om5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVd
KTsKKyAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKKyAgICBFWFBF
Q1RfSlNfRVEodmlldywgImRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsICJ2aXNpYmxl
Iik7CisKKyAgICAvLyBNaW5pbWl6ZSB0aGUgd2luZG93LiBQYWdlVmlzaWJpbGl0eSBzaG91bGQg
YmVjb21lICJoaWRkZW4iLgorICAgIGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7
CisgICAgW3dpbmRvdy5nZXQoKSBtaW5pYXR1cml6ZTpuaWxdOworICAgIFV0aWw6OnJ1bigmZGlk
R2V0UGFnZVNpZ25hbFRvQ29udGludWUpOworICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1l
bnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworCisgICAgLy8gRGVtaW5pbWl6
ZSB0aGUgd2luZG93LiBQYWdlVmlzaWJpbGl0eSBzaG91bGQgYmVjb21lICJ2aXNpYmxlIi4KKyAg
ICBkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSA9IGZhbHNlOworICAgIFt3aW5kb3cuZ2V0KCkg
ZGVtaW5pYXR1cml6ZTpuaWxdOworICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRvQ29u
dGludWUpOworICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0
eVN0YXRlIiwgInZpc2libGUiKTsKKworICAgIC8vIFJlbW92ZSB0aGUgV2ViVmlldyBmcm9tIGl0
cyBzdXBlcnZpZXcuIFBhZ2VWaXNpYmlsaXR5IHNob3VsZCBiZWNvbWUgImhpZGRlbiIuCisgICAg
ZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbdmlldyByZW1vdmVGcm9t
U3VwZXJ2aWV3XTsKKyAgICBFWFBFQ1RfTlVMTChbdmlldyB3aW5kb3ddKTsKKyAgICBFWFBFQ1Rf
TlVMTChbdmlldyBzdXBlcnZpZXddKTsKKyAgICBFWFBFQ1RfVFJVRShbd2luZG93LmdldCgpIGlz
VmlzaWJsZV0pOworICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwor
ICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwg
ImhpZGRlbiIpOworfQorICAgIAorVEVTVF9GKFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93
Q2hhbmdlcywgV2ViS2l0KQoreworICAgIHJ1bldlYktpdDFUZXN0KCk7Cit9CisKK1RFU1RfRihQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMsIFdlYktpdDIpCit7CisgICAgcnVu
V2ViS2l0MVRlc3QoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0LmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9XZWJLaXRBZ25vc3RpY1Rlc3QuaAppbmRleCA5ZTViZjdjLi45
YjNlZWY4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9XZWJLaXRBZ25vc3Rp
Y1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9XZWJLaXRBZ25vc3RpY1Rlc3Qu
aApAQCAtNTgsNiArNTgsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXpl
VmlldyhXZWJWaWV3ICopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmlldyhXS1Zp
ZXcgKikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGVpbml0aWFsaXplVmlldyhXZWJWaWV3ICop
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWluaXRpYWxpemVWaWV3KFdLVmlldyAqKSB7IH0KKwog
ICAgIGJvb2wgZGlkRmluaXNoTG9hZDsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL1dlYktpdEFnbm9zdGljVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1dlYktpdEFnbm9zdGljVGVzdC5tbQppbmRleCA2MGNhY2E1Li5hNDdmOGEyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9XZWJLaXRBZ25vc3RpY1Rlc3QubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0Lm1tCkBAIC05MSw2ICs5MSw3
IEBAIHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0OjpydW5XZWJLaXQxVGVzdCgpCiAgICAgbG9hZFVS
TCh3ZWJWaWV3LmdldCgpLCB1cmwoKSk7CiAgICAgd2FpdEZvckxvYWRUb0ZpbmlzaCgpOwogICAg
IGRpZExvYWRVUkwod2ViVmlldy5nZXQoKSk7CisgICAgZGVpbml0aWFsaXplVmlldyh3ZWJWaWV3
LmdldCgpKTsKIH0KIAogdm9pZCBXZWJLaXRBZ25vc3RpY1Rlc3Q6OnJ1bldlYktpdDJUZXN0KCkK
QEAgLTEwNCw2ICsxMDUsNyBAQCB2b2lkIFdlYktpdEFnbm9zdGljVGVzdDo6cnVuV2ViS2l0MlRl
c3QoKQogICAgIGxvYWRVUkwodmlldy5nZXQoKSwgdXJsKCkpOwogICAgIHdhaXRGb3JMb2FkVG9G
aW5pc2goKTsKICAgICBkaWRMb2FkVVJMKHZpZXcuZ2V0KCkpOworICAgIGRlaW5pdGlhbGl6ZVZp
ZXcodmlldy5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0Ojpsb2FkVVJMKFdl
YlZpZXcgKndlYlZpZXcsIE5TVVJMICp1cmwpCg==
</data>
<flag name="review"
          id="203422"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>