<?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>104074</bug_id>
          
          <creation_ts>2012-12-04 18:00:48 -0800</creation_ts>
          <short_desc>Web Inspector: Add command for dispatching mouse events</short_desc>
          <delta_ts>2012-12-14 06:50:10 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>105019</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ken Kania">kkania</reporter>
          <assigned_to name="Ken Kania">kkania</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>783193</commentid>
    <comment_count>0</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-04 18:00:48 -0800</bug_when>
    <thetext>We&apos;d like to be able to dispatch mouse events via the remote debugging protocol. I plan on adding a hidden Input.dispatchMouseEvent command, which just calls the EventHandler handleMouse*Event methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785333</commentid>
    <comment_count>1</comment_count>
      <attachid>178092</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-06 15:26:33 -0800</bug_when>
    <thetext>Created attachment 178092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785764</commentid>
    <comment_count>2</comment_count>
      <attachid>178092</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-07 02:31:52 -0800</bug_when>
    <thetext>Comment on attachment 178092
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:3291
&gt; +                    { &quot;name&quot;: &quot;button&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;none&quot;, &quot;left&quot;, &quot;middle&quot;, &quot;right&quot;], &quot;optional&quot;: true, &quot;description&quot;: &quot;Mouse button (default: \&quot;none\&quot;).&quot; },

What would be a reason for sending button=none or clickCount=0? Does it make any sense?

&gt; Source/WebCore/inspector/Inspector.json:3293
&gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the frame&apos;s viewport.&quot;},

It is always relative to the _main_ frame, the description should reflect this. Alternatively we may pass frame id to specify in which frame the event should be dispatched.

&gt; Source/WebCore/inspector/InspectorInputAgent.cpp:101
&gt; +    else if (type == &quot;mouseReleased&quot;)

I think we should teach CodeGeneratorInspector.py to generate string values for enum elements to  avoid using constant values like this. But this is not directly related to this change and should be addressed separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787490</commentid>
    <comment_count>3</comment_count>
      <attachid>178584</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 10:24:52 -0800</bug_when>
    <thetext>Created attachment 178584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787496</commentid>
    <comment_count>4</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 10:28:51 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 178092 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178092&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:3291
&gt; &gt; +                    { &quot;name&quot;: &quot;button&quot;, &quot;type&quot;: &quot;string&quot;, &quot;enum&quot;: [&quot;none&quot;, &quot;left&quot;, &quot;middle&quot;, &quot;right&quot;], &quot;optional&quot;: true, &quot;description&quot;: &quot;Mouse button (default: \&quot;none\&quot;).&quot; },
&gt; 
&gt; What would be a reason for sending button=none or clickCount=0? Does it make any sense?
&gt; 

button=none and clickCount=0 make sense for mouse moves where the user isn&apos;t holding a button down.

&gt; &gt; Source/WebCore/inspector/Inspector.json:3293
&gt; &gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the frame&apos;s viewport.&quot;},
&gt; 
&gt; It is always relative to the _main_ frame, the description should reflect this. Alternatively we may pass frame id to specify in which frame the event should be dispatched.

I think its best to always use the main frame. Clarified this for the x and y parameters.

&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorInputAgent.cpp:101
&gt; &gt; +    else if (type == &quot;mouseReleased&quot;)
&gt; 
&gt; I think we should teach CodeGeneratorInspector.py to generate string values for enum elements to  avoid using constant values like this. But this is not directly related to this change and should be addressed separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787514</commentid>
    <comment_count>5</comment_count>
      <attachid>178584</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-10 10:40:32 -0800</bug_when>
    <thetext>Comment on attachment 178584
Patch

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

&gt; Source/WebCore/inspector/InspectorInputAgent.cpp:134
&gt; +        modifiers ? *modifiers &amp; PlatformEvent::ShiftKey : false,

you could do int convertedModifiers = modifiers ? *modifiers : 0; to improve the readability here.

&gt; LayoutTests/inspector-protocol/input/dispatchMouseEvent.html:57
&gt; +            InspectorTest.sendCommand(&quot;Input.dispatchMouseEvent&quot;, events.shift(), continueTest);

As with keyboard, these will be naturally serialized, so you don&apos;t need to wait for previous command to finish in order to start the new one. You only need to wait for the last one to complete before calling completeTest()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787643</commentid>
    <comment_count>6</comment_count>
      <attachid>178611</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 12:45:23 -0800</bug_when>
    <thetext>Created attachment 178611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787645</commentid>
    <comment_count>7</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 12:45:54 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 178584 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178584&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorInputAgent.cpp:134
&gt; &gt; +        modifiers ? *modifiers &amp; PlatformEvent::ShiftKey : false,
&gt; 
&gt; you could do int convertedModifiers = modifiers ? *modifiers : 0; to improve the readability here.

done

&gt; 
&gt; &gt; LayoutTests/inspector-protocol/input/dispatchMouseEvent.html:57
&gt; &gt; +            InspectorTest.sendCommand(&quot;Input.dispatchMouseEvent&quot;, events.shift(), continueTest);
&gt; 
&gt; As with keyboard, these will be naturally serialized, so you don&apos;t need to wait for previous command to finish in order to start the new one. You only need to wait for the last one to complete before calling completeTest()

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788316</commentid>
    <comment_count>8</comment_count>
      <attachid>178611</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 04:28:40 -0800</bug_when>
    <thetext>Comment on attachment 178611
Patch

Clearing flags on attachment: 178611

Committed r137291: &lt;http://trac.webkit.org/changeset/137291&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788318</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 04:28:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791572</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-14 06:42:18 -0800</bug_when>
    <thetext>This patch introduced the following closure compiler error:

yurys@yurys-lin:/sources/WebKit (master)$ Source/WebCore/inspector/compile-front-end.py 

....                                                                                  ^

Source/WebCore/inspector/front-end/protocol-externs.js:2939: WARNING - optional arguments must be at the end
InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, opt_button, opt_clickCount, x, y, opt_callback) {}
                                ^

...


We should reorder parameters to pass required ones first.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178092</attachid>
            <date>2012-12-06 15:26:33 -0800</date>
            <delta_ts>2012-12-10 10:24:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104074-20121206152357.patch</filename>
            <type>text/plain</type>
            <size>11413</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY3ODE3ZDhkMjAzODUy
ZTI3ZDAwZGZiNzQwYjljN2YyM2M0NTQwZC4uYmZiY2ViMTgzOGMyMDNmNGUwMjIwODk5MDk0Yzkx
NjliOTQ5ZmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTEyLTA2ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBj
b21tYW5kIGZvciBkaXNwYXRjaGluZyBtb3VzZSBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbGF0Zm9ybSBtb3VzZSBldmVudCBjb29yZGlu
YXRlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgd2luZG93LAorICAgICAgICBidXQg
dGhlIGluc3BlY3RvciBjb21tYW5kIGFzc3VtZXMgdGhleSBmb2xsb3cgc3RhbmRhcmQgd2ViIGNv
b3JkaW5hdGVzLAorICAgICAgICB3aGVyZSB0aGUgb3JpZ2luIGlzIGF0IHRoZSB0b3AgbGVmdCBv
ZiB0aGUgcGFnZSBhbmQgeSBpbmNyZWFzZXMgYXMgeW91CisgICAgICAgIGdvIGRvd24uIFdlIGNv
bnZlcnQgdGhlIGNvb3JkaW5hdGVzIHRvIHRoZSB3aW5kb3cgYmVmb3JlIGNvbnN0cnVjdGluZwor
ICAgICAgICB0aGUgZXZlbnQuIFRoaXMgYWxzbyBmaXhlcyB0aGUgZmFjdCB0aGF0IHNvbWUgcGxh
dGZvcm1zIGhhdmUgZmxpcHBlZAorICAgICAgICBjb29yZGluYXRlIHN5c3RlbXMuCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1s
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0
b3JJbnB1dEFnZW50KToKKwogMjAxMi0xMi0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtWOF0gUmVuYW1lIFY4RE9NV3JhcHBlciBtZW1iZXIgZnVuY3Rpb25z
IHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgppbmRleCA4ZjIyYzdhZmUxODE2Y2FjZjUyNzNmODc2YTk1OTg4OTcyOWUyNzY5Li5kYWUw
ZWYwN2EzMWRjM2JlZTYxOGYzZDUwOTdkOGYxMTI3MDUzYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMjgxLDYgKzMyODEsMTkgQEAKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJpc1N5c3RlbUtleSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0aGUgZXZlbnQgd2FzIGEgc3lz
dGVtIGtleSBldmVudCAoZGVmYXVsdDogZmFsc2UpLiIgfQogICAgICAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc3BhdGNoZXMgYSBrZXkgZXZlbnQgdG8g
dGhlIHBhZ2UuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAibmFtZSI6ICJkaXNwYXRjaE1vdXNlRXZlbnQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJz
dHJpbmciLCAiZW51bSI6IFsibW91c2VQcmVzc2VkIiwgIm1vdXNlUmVsZWFzZWQiLCAibW91c2VN
b3ZlZCJdLCAiZGVzY3JpcHRpb24iOiAiVHlwZSBvZiB0aGUgbW91c2UgZXZlbnQuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1vZGlmaWVycyIsICJ0eXBlIjogImludGVnZXIi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQml0IGZpZWxkIHJlcHJlc2VudGlu
ZyBwcmVzc2VkIG1vZGlmaWVyIGtleXMuIEFsdD0xLCBDdHJsPTIsIE1ldGEvQ29tbWFuZD00LCBT
aGlmdD04IChkZWZhdWx0OiAwKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dGltZXN0YW1wIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlRpbWUgYXQgd2hpY2ggdGhlIGV2ZW50IG9jY3VycmVkLiBNZWFzdXJlZCBpbiBVVEMg
dGltZSBpbiBzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAoZGVmYXVsdDogY3VycmVudCB0
aW1lKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnV0dG9uIiwgInR5cGUi
OiAic3RyaW5nIiwgImVudW0iOiBbIm5vbmUiLCAibGVmdCIsICJtaWRkbGUiLCAicmlnaHQiXSwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk1vdXNlIGJ1dHRvbiAoZGVmYXVsdDog
XCJub25lXCIpLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjbGlja0NvdW50
IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJO
dW1iZXIgb2YgdGltZXMgdGhlIG1vdXNlIGJ1dHRvbiB3YXMgY2xpY2tlZCAoZGVmYXVsdDogMCku
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIngiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIlggY29vcmRpbmF0ZSBvZiB0aGUgZXZlbnQgcmVsYXRpdmUgdG8g
dGhlIGZyYW1lJ3Mgdmlld3BvcnQuIn0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
eSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiWSBjb29yZGluYXRlIG9mIHRo
ZSBldmVudCByZWxhdGl2ZSB0byB0aGUgZnJhbWUncyB2aWV3cG9ydC4gMCByZWZlcnMgdG8gdGhl
IHRvcCBvZiB0aGUgdmlld3BvcnQgYW5kIFkgaW5jcmVhc2VzIGFzIGl0IHByb2NlZWRzIHRvd2Fy
ZHMgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQuIn0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVzIGEgbW91c2UgZXZlbnQgdG8g
dGhlIHBhZ2UuIgogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjog
W10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNw
cAppbmRleCBlNjgzNGFhNzA2ZTc0MzAyZDQzZGQ3NTBmOWVlZTgyNjA4ODQxNGQyLi4xMmUwNGRl
NmMyNmY0ZWNkOWU2YWU2ZGI3ZmNhZDAyNTU0ODFhYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTcgQEAK
IAogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdlbnQuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5o
IgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0
LmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg3LDYgKzkzLDY2IEBAIHZv
aWQgSW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyogZXJy
b3IsIGNvbnN0IFN0cmluZyYgdHlwCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5k
bGVyKCktPmtleUV2ZW50KGV2ZW50KTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnB1dEFnZW50Ojpk
aXNwYXRjaE1vdXNlRXZlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3Ry
aW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3VudCwgaW50IHgsIGludCB5KQoreworICAg
IFBsYXRmb3JtRXZlbnQ6OlR5cGUgY29udmVydGVkVHlwZTsKKyAgICBpZiAodHlwZSA9PSAibW91
c2VQcmVzc2VkIikKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZDsKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb3VzZVJlbGVhc2VkIikKKyAgICAgICAg
Y29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgZWxzZSBp
ZiAodHlwZSA9PSAibW91c2VNb3ZlZCIpCisgICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkOworICAgIGVsc2UgeworICAgICAgICAqZXJyb3IgPSAiVW5yZWNv
Z25pemVkIHR5cGU6ICIgKyB0eXBlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTW91
c2VCdXR0b24gY29udmVydGVkQnV0dG9uID0gTm9CdXR0b247CisgICAgaWYgKGJ1dHRvbikgewor
ICAgICAgICBpZiAoKmJ1dHRvbiA9PSAibGVmdCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0
b24gPSBMZWZ0QnV0dG9uOworICAgICAgICBlbHNlIGlmICgqYnV0dG9uID09ICJtaWRkbGUiKQor
ICAgICAgICAgICAgY29udmVydGVkQnV0dG9uID0gTWlkZGxlQnV0dG9uOworICAgICAgICBlbHNl
IGlmICgqYnV0dG9uID09ICJyaWdodCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0b24gPSBS
aWdodEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoKmJ1dHRvbiAhPSAibm9uZSIpIHsKKyAgICAg
ICAgICAgICplcnJvciA9ICJVbnJlY29nbml6ZWQgYnV0dG9uOiAiICsgKmJ1dHRvbjsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFNvbWUgcGxhdGZvcm1z
IG1heSBoYXZlIGZsaXBwZWQgY29vcmRpbmF0ZSBzeXN0ZW1zLCBidXQgdGhlIGdpdmVuIGNvb3Jk
aW5hdGVzCisgICAgLy8gYXNzdW1lIHRoZSBvcmlnaW4gaXMgaW4gdGhlIHRvcC1sZWZ0IG9mIHRo
ZSB3aW5kb3cuIENvbnZlcnQuCisgICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQgPSBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coSW50UG9pbnQo
eCwgeSkpOworICAgIEludFBvaW50IGdsb2JhbFBvaW50ID0gbV9wYWdlLT5jaHJvbWUoKS0+cm9v
dFZpZXdUb1NjcmVlbihJbnRSZWN0KEludFBvaW50KHgsIHkpLCBJbnRTaXplKDAsIDApKSkubG9j
YXRpb24oKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoCisgICAgICAgIGNvbnZlcnRl
ZFBvaW50LAorICAgICAgICBnbG9iYWxQb2ludCwKKyAgICAgICAgY29udmVydGVkQnV0dG9uLAor
ICAgICAgICBjb252ZXJ0ZWRUeXBlLAorICAgICAgICBjbGlja0NvdW50ID8gKmNsaWNrQ291bnQg
OiAwLAorICAgICAgICBtb2RpZmllcnMgPyAqbW9kaWZpZXJzICYgUGxhdGZvcm1FdmVudDo6U2hp
ZnRLZXkgOiBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzID8gKm1vZGlmaWVycyAmIFBsYXRmb3Jt
RXZlbnQ6OkN0cmxLZXkgOiBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzID8gKm1vZGlmaWVycyAm
IFBsYXRmb3JtRXZlbnQ6OkFsdEtleSA6IGZhbHNlLAorICAgICAgICBtb2RpZmllcnMgPyAqbW9k
aWZpZXJzICYgUGxhdGZvcm1FdmVudDo6TWV0YUtleSA6IGZhbHNlLAorICAgICAgICB0aW1lc3Rh
bXAgPyAqdGltZXN0YW1wIDogY3VycmVudFRpbWUoKSk7CisKKyAgICBFdmVudEhhbmRsZXIqIGhh
bmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKTsKKyAgICBzd2l0Y2gg
KGNvbnZlcnRlZFR5cGUpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDoK
KyAgICAgICAgaGFuZGxlci0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgorICAgICAgICBo
YW5kbGVyLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChldmVudCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDoKKyAgICAgICAgaGFuZGxlci0+aGFu
ZGxlTW91c2VNb3ZlRXZlbnQoZXZlbnQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICAqZXJyb3IgPSAiVW5oYW5kbGVkIHR5cGU6ICIgKyB0eXBlOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCmluZGV4IDIw
YzRjMDk1N2VhZDMzN2FlYjA0ODVmYjE0OTBlMmU1MTczNzhhMTQuLjI0YTI2NGJjODVjYTM2Nzll
MmFmYTU1YThjZWVjY2EwZDM1NDBkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcklucHV0QWdlbnQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAKICAgICAv
LyBNZXRob2RzIGNhbGxlZCBmcm9tIHRoZSBmcm9udGVuZCBmb3Igc2ltdWxhdGluZyBpbnB1dC4K
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1w
LCBjb25zdCBTdHJpbmcqIHRleHQsIGNvbnN0IFN0cmluZyogdW5tb2RpZmllZFRleHQsIGNvbnN0
IFN0cmluZyoga2V5SWRlbnRpZmllciwgY29uc3QgaW50KiB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGNvbnN0IGludCogbmF0aXZlVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCogbWFjQ2hhckNvZGUs
IGNvbnN0IGJvb2wqIGF1dG9SZXBlYXQsIGNvbnN0IGJvb2wqIGlzS2V5cGFkLCBjb25zdCBib29s
KiBpc1N5c3RlbUtleSk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTW91c2VFdmVudChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0
IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJpbmcqIGJ1dHRvbiwgY29uc3QgaW50KiBjbGlj
a0NvdW50LCBpbnQgeCwgaW50IHkpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvcklucHV0QWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgUGFnZSopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNjN2Q5OTE3NTQyOTIzYjM5MjM3YjkxNmNjOTUyNjRmNTlkYzdkZDkuLmNkZGFjOWJmODdlZjBl
MzliOWQ3NDdjZDM4NjMxNWY2NjY0NGI4ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0x
Mi0wNiAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW5zcGVj
dG9yXSBBZGQgY29tbWFuZCBmb3IgZGlzcGF0Y2hpbmcgbW91c2UgZXZlbnRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MDc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGxhdGZvcm0gbW91c2UgZXZl
bnQgY29vcmRpbmF0ZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIHdpbmRvdywKKyAg
ICAgICAgYnV0IHRoZSBpbnNwZWN0b3IgY29tbWFuZCBhc3N1bWVzIHRoZXkgZm9sbG93IHN0YW5k
YXJkIHdlYiBjb29yZGluYXRlcywKKyAgICAgICAgd2hlcmUgdGhlIG9yaWdpbiBpcyBhdCB0aGUg
dG9wIGxlZnQgb2YgdGhlIHBhZ2UgYW5kIHkgaW5jcmVhc2VzIGFzIHlvdQorICAgICAgICBnbyBk
b3duLiBXZSBjb252ZXJ0IHRoZSBjb29yZGluYXRlcyB0byB0aGUgd2luZG93IGJlZm9yZSBjb25z
dHJ1Y3RpbmcKKyAgICAgICAgdGhlIGV2ZW50LiBUaGlzIGFsc28gZml4ZXMgdGhlIGZhY3QgdGhh
dCBzb21lIHBsYXRmb3JtcyBoYXZlIGZsaXBwZWQKKyAgICAgICAgY29vcmRpbmF0ZSBzeXN0ZW1z
LgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9pbnB1
dC9kaXNwYXRjaE1vdXNlRXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMDQgIEZsb3JpbiBN
YWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRl
bmluZyAtIHN1cHByZXNzaW5nIGZhaWxpbmcgc3ZnL2N1c3RvbS91c2UtaHJlZi11cGRhdGUtY3Jh
c2guc3ZnIG9uIE1hYyBhbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9pbnB1dC9kaXNwYXRjaE1vdXNlRXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmIxNDdjYzhmZWYzOTg4ZmY1ZGJiNTc1OTg3ZTcwMmIxMzM1OGE0NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9pbnB1dC9kaXNw
YXRjaE1vdXNlRXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKy0tLS0tRXZlbnQt
LS0tLQordHlwZTogbW91c2Vkb3duCitidXR0b246IDAKK3g6IDEwMAoreTogMjAwCistLS0tLUV2
ZW50LS0tLS0KK3R5cGU6IG1vdXNldXAKK2J1dHRvbjogMAoreDogMTAwCit5OiAyMDAKKy0tLS0t
RXZlbnQtLS0tLQordHlwZTogbW91c2Vtb3ZlCitidXR0b246IDAKK3NoaWZ0S2V5Cit4OiA1MAor
eTogMTUwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9pbnB1
dC9kaXNwYXRjaE1vdXNlRXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9pbnB1dC9kaXNwYXRjaE1vdXNlRXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTRhOTE1ZjgwNzMz
MTgxOTMyZTRkMTViMTk1MjM4NWEyM2I0YWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1sCkBAIC0w
LDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2Vkb3duIiwgbG9nRXZlbnQpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNldXAiLCBsb2dFdmVudCk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
bG9nRXZlbnQpOworCitmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAgIGxvZygiLS0tLS1F
dmVudC0tLS0tIik7CisgICAgbG9nKCJ0eXBlOiAiICsgZXZlbnQudHlwZSk7CisgICAgbG9nKCJi
dXR0b246ICIgKyBldmVudC5idXR0b24pOworICAgIGlmIChldmVudC5zaGlmdEtleSkKKyAgICAg
ICAgbG9nKCJzaGlmdEtleSIpOworICAgIGxvZygieDogIiArIGV2ZW50LngpOworICAgIGxvZygi
eTogIiArIGV2ZW50LnkpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZXZlbnRz
ID0gWworICAgICAgICB7CisgICAgICAgICAgICAidHlwZSI6ICJtb3VzZVByZXNzZWQiLAorICAg
ICAgICAgICAgImJ1dHRvbiI6ICJsZWZ0IiwKKyAgICAgICAgICAgICJjbGlja0NvdW50IjogMSwK
KyAgICAgICAgICAgICJ4IjogMTAwLAorICAgICAgICAgICAgInkiOiAyMDAKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgInR5cGUiOiAibW91c2VSZWxlYXNlZCIsCisgICAgICAg
ICAgICAiYnV0dG9uIjogImxlZnQiLAorICAgICAgICAgICAgImNsaWNrQ291bnQiOiAxLAorICAg
ICAgICAgICAgIngiOiAxMDAsCisgICAgICAgICAgICAieSI6IDIwMAorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAidHlwZSI6ICJtb3VzZU1vdmVkIiwKKyAgICAgICAgICAgICJt
b2RpZmllcnMiOiA4LCAvLyBzaGlmdAorICAgICAgICAgICAgIngiOiA1MCwKKyAgICAgICAgICAg
ICJ5IjogMTUwCisgICAgICAgIH0KKyAgICBdOworCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiSW5wdXQuZGlzcGF0Y2hNb3VzZUV2ZW50IiwgZXZlbnRzLnNoaWZ0KCksIGNvbnRpbnVl
VGVzdCk7CisKKyAgICBmdW5jdGlvbiBjb250aW51ZVRlc3QobXNnKSB7CisgICAgICAgIGlmICht
c2cuZXJyb3IpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJvcjogIiArIG1z
Zy5lcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXZlbnRz
Lmxlbmd0aCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIklucHV0LmRp
c3BhdGNoTW91c2VFdmVudCIsIGV2ZW50cy5zaGlmdCgpLCBjb250aW51ZVRlc3QpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178584</attachid>
            <date>2012-12-10 10:24:52 -0800</date>
            <delta_ts>2012-12-10 12:45:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104074-20121210102214.patch</filename>
            <type>text/plain</type>
            <size>11412</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ3ZGQ0NTE2MWY1YTZj
ZTJlZGMzNTlkZTE5MTMzMWU1YWZkYjU3Ni4uZjdmMzk5YmRhZDhlNWQxMzZmYjdlMTcxOGZmNjc4
N2ZhMjNjMjlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTEyLTEwICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBj
b21tYW5kIGZvciBkaXNwYXRjaGluZyBtb3VzZSBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbGF0Zm9ybSBtb3VzZSBldmVudCBjb29yZGlu
YXRlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgd2luZG93LAorICAgICAgICBidXQg
dGhlIGluc3BlY3RvciBjb21tYW5kIGFzc3VtZXMgdGhleSBmb2xsb3cgc3RhbmRhcmQgd2ViIGNv
b3JkaW5hdGVzLAorICAgICAgICB3aGVyZSB0aGUgb3JpZ2luIGlzIGF0IHRoZSB0b3AgbGVmdCBv
ZiB0aGUgcGFnZSBhbmQgeSBpbmNyZWFzZXMgYXMgeW91CisgICAgICAgIGdvIGRvd24uIFdlIGNv
bnZlcnQgdGhlIGNvb3JkaW5hdGVzIHRvIHRoZSB3aW5kb3cgYmVmb3JlIGNvbnN0cnVjdGluZwor
ICAgICAgICB0aGUgZXZlbnQuIFRoaXMgYWxzbyBmaXhlcyB0aGUgZmFjdCB0aGF0IHNvbWUgcGxh
dGZvcm1zIGhhdmUgZmxpcHBlZAorICAgICAgICBjb29yZGluYXRlIHN5c3RlbXMuCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1s
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0
b3JJbnB1dEFnZW50KToKKwogMjAxMi0xMi0wNCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGdt
YWlsLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCxF
eGNlcHRpb25Db2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4
IDhmMjJjN2FmZTE4MTZjYWNmNTI3M2Y4NzZhOTU5ODg5NzI5ZTI3NjkuLjM5MTU5ZTAzNzQwNjI1
MDA1ZDgxZGExOWU2ODRkYzllZWFiOWFiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KQEAgLTMyODEsNiArMzI4MSwxOSBAQAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImlzU3lzdGVtS2V5IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBldmVudCB3YXMgYSBzeXN0ZW0ga2V5IGV2
ZW50IChkZWZhdWx0OiBmYWxzZSkuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRGlzcGF0Y2hlcyBhIGtleSBldmVudCB0byB0aGUgcGFnZS4i
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjog
ImRpc3BhdGNoTW91c2VFdmVudCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJl
bnVtIjogWyJtb3VzZVByZXNzZWQiLCAibW91c2VSZWxlYXNlZCIsICJtb3VzZU1vdmVkIl0sICJk
ZXNjcmlwdGlvbiI6ICJUeXBlIG9mIHRoZSBtb3VzZSBldmVudC4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAibW9kaWZpZXJzIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJCaXQgZmllbGQgcmVwcmVzZW50aW5nIHByZXNzZWQg
bW9kaWZpZXIga2V5cy4gQWx0PTEsIEN0cmw9MiwgTWV0YS9Db21tYW5kPTQsIFNoaWZ0PTggKGRl
ZmF1bHQ6IDApLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAi
LCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGlt
ZSBhdCB3aGljaCB0aGUgZXZlbnQgb2NjdXJyZWQuIE1lYXN1cmVkIGluIFVUQyB0aW1lIGluIHNl
Y29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwIChkZWZhdWx0OiBjdXJyZW50IHRpbWUpLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJidXR0b24iLCAidHlwZSI6ICJzdHJpbmci
LCAiZW51bSI6IFsibm9uZSIsICJsZWZ0IiwgIm1pZGRsZSIsICJyaWdodCJdLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTW91c2UgYnV0dG9uIChkZWZhdWx0OiBcIm5vbmVcIiku
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNsaWNrQ291bnQiLCAidHlwZSI6
ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiB0
aW1lcyB0aGUgbW91c2UgYnV0dG9uIHdhcyBjbGlja2VkIChkZWZhdWx0OiAwKS4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAieCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3Jp
cHRpb24iOiAiWCBjb29yZGluYXRlIG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgbWFpbiBm
cmFtZSdzIHZpZXdwb3J0LiJ9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInkiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlkgY29vcmRpbmF0ZSBvZiB0aGUgZXZl
bnQgcmVsYXRpdmUgdG8gdGhlIG1haW4gZnJhbWUncyB2aWV3cG9ydC4gMCByZWZlcnMgdG8gdGhl
IHRvcCBvZiB0aGUgdmlld3BvcnQgYW5kIFkgaW5jcmVhc2VzIGFzIGl0IHByb2NlZWRzIHRvd2Fy
ZHMgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQuIn0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNwYXRjaGVzIGEgbW91c2UgZXZlbnQgdG8g
dGhlIHBhZ2UuIgogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjog
W10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNw
cAppbmRleCBlNjgzNGFhNzA2ZTc0MzAyZDQzZGQ3NTBmOWVlZTgyNjA4ODQxNGQyLi4xMmUwNGRl
NmMyNmY0ZWNkOWU2YWU2ZGI3ZmNhZDAyNTU0ODFhYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTcgQEAK
IAogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdlbnQuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5o
IgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0
LmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg3LDYgKzkzLDY2IEBAIHZv
aWQgSW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyogZXJy
b3IsIGNvbnN0IFN0cmluZyYgdHlwCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5k
bGVyKCktPmtleUV2ZW50KGV2ZW50KTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnB1dEFnZW50Ojpk
aXNwYXRjaE1vdXNlRXZlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3Ry
aW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3VudCwgaW50IHgsIGludCB5KQoreworICAg
IFBsYXRmb3JtRXZlbnQ6OlR5cGUgY29udmVydGVkVHlwZTsKKyAgICBpZiAodHlwZSA9PSAibW91
c2VQcmVzc2VkIikKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZDsKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb3VzZVJlbGVhc2VkIikKKyAgICAgICAg
Y29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgZWxzZSBp
ZiAodHlwZSA9PSAibW91c2VNb3ZlZCIpCisgICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkOworICAgIGVsc2UgeworICAgICAgICAqZXJyb3IgPSAiVW5yZWNv
Z25pemVkIHR5cGU6ICIgKyB0eXBlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTW91
c2VCdXR0b24gY29udmVydGVkQnV0dG9uID0gTm9CdXR0b247CisgICAgaWYgKGJ1dHRvbikgewor
ICAgICAgICBpZiAoKmJ1dHRvbiA9PSAibGVmdCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0
b24gPSBMZWZ0QnV0dG9uOworICAgICAgICBlbHNlIGlmICgqYnV0dG9uID09ICJtaWRkbGUiKQor
ICAgICAgICAgICAgY29udmVydGVkQnV0dG9uID0gTWlkZGxlQnV0dG9uOworICAgICAgICBlbHNl
IGlmICgqYnV0dG9uID09ICJyaWdodCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0b24gPSBS
aWdodEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoKmJ1dHRvbiAhPSAibm9uZSIpIHsKKyAgICAg
ICAgICAgICplcnJvciA9ICJVbnJlY29nbml6ZWQgYnV0dG9uOiAiICsgKmJ1dHRvbjsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFNvbWUgcGxhdGZvcm1z
IG1heSBoYXZlIGZsaXBwZWQgY29vcmRpbmF0ZSBzeXN0ZW1zLCBidXQgdGhlIGdpdmVuIGNvb3Jk
aW5hdGVzCisgICAgLy8gYXNzdW1lIHRoZSBvcmlnaW4gaXMgaW4gdGhlIHRvcC1sZWZ0IG9mIHRo
ZSB3aW5kb3cuIENvbnZlcnQuCisgICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQgPSBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coSW50UG9pbnQo
eCwgeSkpOworICAgIEludFBvaW50IGdsb2JhbFBvaW50ID0gbV9wYWdlLT5jaHJvbWUoKS0+cm9v
dFZpZXdUb1NjcmVlbihJbnRSZWN0KEludFBvaW50KHgsIHkpLCBJbnRTaXplKDAsIDApKSkubG9j
YXRpb24oKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoCisgICAgICAgIGNvbnZlcnRl
ZFBvaW50LAorICAgICAgICBnbG9iYWxQb2ludCwKKyAgICAgICAgY29udmVydGVkQnV0dG9uLAor
ICAgICAgICBjb252ZXJ0ZWRUeXBlLAorICAgICAgICBjbGlja0NvdW50ID8gKmNsaWNrQ291bnQg
OiAwLAorICAgICAgICBtb2RpZmllcnMgPyAqbW9kaWZpZXJzICYgUGxhdGZvcm1FdmVudDo6U2hp
ZnRLZXkgOiBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzID8gKm1vZGlmaWVycyAmIFBsYXRmb3Jt
RXZlbnQ6OkN0cmxLZXkgOiBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzID8gKm1vZGlmaWVycyAm
IFBsYXRmb3JtRXZlbnQ6OkFsdEtleSA6IGZhbHNlLAorICAgICAgICBtb2RpZmllcnMgPyAqbW9k
aWZpZXJzICYgUGxhdGZvcm1FdmVudDo6TWV0YUtleSA6IGZhbHNlLAorICAgICAgICB0aW1lc3Rh
bXAgPyAqdGltZXN0YW1wIDogY3VycmVudFRpbWUoKSk7CisKKyAgICBFdmVudEhhbmRsZXIqIGhh
bmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKTsKKyAgICBzd2l0Y2gg
KGNvbnZlcnRlZFR5cGUpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDoK
KyAgICAgICAgaGFuZGxlci0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgorICAgICAgICBo
YW5kbGVyLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChldmVudCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDoKKyAgICAgICAgaGFuZGxlci0+aGFu
ZGxlTW91c2VNb3ZlRXZlbnQoZXZlbnQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICAqZXJyb3IgPSAiVW5oYW5kbGVkIHR5cGU6ICIgKyB0eXBlOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCmluZGV4IDIw
YzRjMDk1N2VhZDMzN2FlYjA0ODVmYjE0OTBlMmU1MTczNzhhMTQuLjI0YTI2NGJjODVjYTM2Nzll
MmFmYTU1YThjZWVjY2EwZDM1NDBkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcklucHV0QWdlbnQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAKICAgICAv
LyBNZXRob2RzIGNhbGxlZCBmcm9tIHRoZSBmcm9udGVuZCBmb3Igc2ltdWxhdGluZyBpbnB1dC4K
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1w
LCBjb25zdCBTdHJpbmcqIHRleHQsIGNvbnN0IFN0cmluZyogdW5tb2RpZmllZFRleHQsIGNvbnN0
IFN0cmluZyoga2V5SWRlbnRpZmllciwgY29uc3QgaW50KiB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGNvbnN0IGludCogbmF0aXZlVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCogbWFjQ2hhckNvZGUs
IGNvbnN0IGJvb2wqIGF1dG9SZXBlYXQsIGNvbnN0IGJvb2wqIGlzS2V5cGFkLCBjb25zdCBib29s
KiBpc1N5c3RlbUtleSk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTW91c2VFdmVudChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0
IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJpbmcqIGJ1dHRvbiwgY29uc3QgaW50KiBjbGlj
a0NvdW50LCBpbnQgeCwgaW50IHkpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvcklucHV0QWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgUGFnZSopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDNhYWVmZjBlZTI2MGNjMGNlOTY5NTY2NjJlOWYzYzhjMjQ0OTFhYTMuLjljYjI3NTdkNGE5MzUw
NDU5MGY0Y2JjNTU2OWUwZTM0YTY4N2IwZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0x
Mi0xMCAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW5zcGVj
dG9yXSBBZGQgY29tbWFuZCBmb3IgZGlzcGF0Y2hpbmcgbW91c2UgZXZlbnRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MDc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGxhdGZvcm0gbW91c2UgZXZl
bnQgY29vcmRpbmF0ZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIHdpbmRvdywKKyAg
ICAgICAgYnV0IHRoZSBpbnNwZWN0b3IgY29tbWFuZCBhc3N1bWVzIHRoZXkgZm9sbG93IHN0YW5k
YXJkIHdlYiBjb29yZGluYXRlcywKKyAgICAgICAgd2hlcmUgdGhlIG9yaWdpbiBpcyBhdCB0aGUg
dG9wIGxlZnQgb2YgdGhlIHBhZ2UgYW5kIHkgaW5jcmVhc2VzIGFzIHlvdQorICAgICAgICBnbyBk
b3duLiBXZSBjb252ZXJ0IHRoZSBjb29yZGluYXRlcyB0byB0aGUgd2luZG93IGJlZm9yZSBjb25z
dHJ1Y3RpbmcKKyAgICAgICAgdGhlIGV2ZW50LiBUaGlzIGFsc28gZml4ZXMgdGhlIGZhY3QgdGhh
dCBzb21lIHBsYXRmb3JtcyBoYXZlIGZsaXBwZWQKKyAgICAgICAgY29vcmRpbmF0ZSBzeXN0ZW1z
LgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9pbnB1
dC9kaXNwYXRjaE1vdXNlRXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMDQgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIG1hcmsgY3Nz
My9maWx0ZXJzL2VmZmVjdC1yZWZlcmVuY2UtaHcuaHRtbCBhcyBmYWlsaW5nIHJhdGhlciB0aGFu
IGNyYXNoaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lu
cHV0L2Rpc3BhdGNoTW91c2VFdmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvaW5wdXQvZGlzcGF0Y2hNb3VzZUV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YjE0N2NjOGZlZjM5ODhmZjVkYmI1NzU5ODdlNzAyYjEzMzU4YTQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91
c2VFdmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorLS0tLS1FdmVudC0tLS0tCit0
eXBlOiBtb3VzZWRvd24KK2J1dHRvbjogMAoreDogMTAwCit5OiAyMDAKKy0tLS0tRXZlbnQtLS0t
LQordHlwZTogbW91c2V1cAorYnV0dG9uOiAwCit4OiAxMDAKK3k6IDIwMAorLS0tLS1FdmVudC0t
LS0tCit0eXBlOiBtb3VzZW1vdmUKK2J1dHRvbjogMAorc2hpZnRLZXkKK3g6IDUwCit5OiAxNTAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3Bh
dGNoTW91c2VFdmVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0
L2Rpc3BhdGNoTW91c2VFdmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjY2U5NzY0ODUxMTZmMDQxZmEw
MTg5YjY2ZjA4ZjYxMGI0ODI1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvaW5wdXQvZGlzcGF0Y2hNb3VzZUV2ZW50Lmh0bWwKQEAgLTAsMCArMSw2
NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCBsb2dFdmVudCk7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIs
IGxvZ0V2ZW50KTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBsb2dFdmVu
dCk7CisKK2Z1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KQoreworICAgIGxvZygiLS0tLS1FdmVudC0t
LS0tIik7CisgICAgbG9nKCJ0eXBlOiAiICsgZXZlbnQudHlwZSk7CisgICAgbG9nKCJidXR0b246
ICIgKyBldmVudC5idXR0b24pOworICAgIGlmIChldmVudC5zaGlmdEtleSkKKyAgICAgICAgbG9n
KCJzaGlmdEtleSIpOworICAgIGxvZygieDogIiArIGV2ZW50LngpOworICAgIGxvZygieTogIiAr
IGV2ZW50LnkpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZXZlbnRzID0gWwor
ICAgICAgICB7CisgICAgICAgICAgICAidHlwZSI6ICJtb3VzZVByZXNzZWQiLAorICAgICAgICAg
ICAgImJ1dHRvbiI6ICJsZWZ0IiwKKyAgICAgICAgICAgICJjbGlja0NvdW50IjogMSwKKyAgICAg
ICAgICAgICJ4IjogMTAwLAorICAgICAgICAgICAgInkiOiAyMDAKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgInR5cGUiOiAibW91c2VSZWxlYXNlZCIsCisgICAgICAgICAgICAi
YnV0dG9uIjogImxlZnQiLAorICAgICAgICAgICAgImNsaWNrQ291bnQiOiAxLAorICAgICAgICAg
ICAgIngiOiAxMDAsCisgICAgICAgICAgICAieSI6IDIwMAorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAidHlwZSI6ICJtb3VzZU1vdmVkIiwKKyAgICAgICAgICAgICJtb2RpZmll
cnMiOiA4LCAvLyBzaGlmdAorICAgICAgICAgICAgIngiOiA1MCwKKyAgICAgICAgICAgICJ5Ijog
MTUwCisgICAgICAgIH0KKyAgICBdOworCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
SW5wdXQuZGlzcGF0Y2hNb3VzZUV2ZW50IiwgZXZlbnRzLnNoaWZ0KCksIGNvbnRpbnVlVGVzdCk7
CisKKyAgICBmdW5jdGlvbiBjb250aW51ZVRlc3QobXNnKQorICAgIHsKKyAgICAgICAgaWYgKG1z
Zy5lcnJvcikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVycm9yOiAiICsgbXNn
LmVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudHMu
bGVuZ3RoKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiSW5wdXQuZGlz
cGF0Y2hNb3VzZUV2ZW50IiwgZXZlbnRzLnNoaWZ0KCksIGNvbnRpbnVlVGVzdCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178611</attachid>
            <date>2012-12-10 12:45:23 -0800</date>
            <delta_ts>2012-12-11 04:28:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104074-20121210124245.patch</filename>
            <type>text/plain</type>
            <size>13059</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ3ZGQ0NTE2MWY1YTZj
ZTJlZGMzNTlkZTE5MTMzMWU1YWZkYjU3Ni4uZTliNzkzMzY0NTg2MjU5NThjYWQxNTI2NTUyMjIy
NzIwYzhjOTRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEyLTEwICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBj
b21tYW5kIGZvciBkaXNwYXRjaGluZyBtb3VzZSBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbGF0Zm9ybSBtb3VzZSBldmVudCBjb29yZGlu
YXRlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgd2luZG93LAorICAgICAgICBidXQg
dGhlIGluc3BlY3RvciBjb21tYW5kIGFzc3VtZXMgdGhleSBmb2xsb3cgc3RhbmRhcmQgd2ViIGNv
b3JkaW5hdGVzLAorICAgICAgICB3aGVyZSB0aGUgb3JpZ2luIGlzIGF0IHRoZSB0b3AgbGVmdCBv
ZiB0aGUgcGFnZSBhbmQgeSBpbmNyZWFzZXMgYXMgeW91CisgICAgICAgIGdvIGRvd24uIFdlIGNv
bnZlcnQgdGhlIGNvb3JkaW5hdGVzIHRvIHRoZSB3aW5kb3cgYmVmb3JlIGNvbnN0cnVjdGluZwor
ICAgICAgICB0aGUgZXZlbnQuIFRoaXMgYWxzbyBmaXhlcyB0aGUgZmFjdCB0aGF0IHNvbWUgcGxh
dGZvcm1zIGhhdmUgZmxpcHBlZAorICAgICAgICBjb29yZGluYXRlIHN5c3RlbXMuCisgICAgICAg
IEFsc28sIHVwZGF0ZSBkaXNwYXRjaEtleUV2ZW50IHRlc3QgdG8gZm9sbG93IHNpbXBsZXIgZGlz
cGF0Y2hNb3VzZUV2ZW50CisgICAgICAgIHRlc3QuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9y
LXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0
Y2hNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnB1dEFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JJbnB1dEFnZW50KToKKwog
MjAxMi0xMi0wNCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGdtYWlsLmNvbT4KIAogICAgICAg
ICBTaW1wbGlmeSBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCxFeGNlcHRpb25Db2RlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDhmMjJjN2FmZTE4MTZjYWNm
NTI3M2Y4NzZhOTU5ODg5NzI5ZTI3NjkuLjM5MTU5ZTAzNzQwNjI1MDA1ZDgxZGExOWU2ODRkYzll
ZWFiOWFiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMy
ODEsNiArMzI4MSwxOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzU3lzdGVt
S2V5IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJXaGV0aGVyIHRoZSBldmVudCB3YXMgYSBzeXN0ZW0ga2V5IGV2ZW50IChkZWZhdWx0OiBmYWxz
ZSkuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRGlzcGF0Y2hlcyBhIGtleSBldmVudCB0byB0aGUgcGFnZS4iCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRpc3BhdGNoTW91c2VFdmVu
dCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJtb3VzZVByZXNz
ZWQiLCAibW91c2VSZWxlYXNlZCIsICJtb3VzZU1vdmVkIl0sICJkZXNjcmlwdGlvbiI6ICJUeXBl
IG9mIHRoZSBtb3VzZSBldmVudC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
bW9kaWZpZXJzIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJCaXQgZmllbGQgcmVwcmVzZW50aW5nIHByZXNzZWQgbW9kaWZpZXIga2V5cy4gQWx0
PTEsIEN0cmw9MiwgTWV0YS9Db21tYW5kPTQsIFNoaWZ0PTggKGRlZmF1bHQ6IDApLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGltZSBhdCB3aGljaCB0aGUgZXZl
bnQgb2NjdXJyZWQuIE1lYXN1cmVkIGluIFVUQyB0aW1lIGluIHNlY29uZHMgc2luY2UgSmFudWFy
eSAxLCAxOTcwIChkZWZhdWx0OiBjdXJyZW50IHRpbWUpLiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJidXR0b24iLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsibm9uZSIs
ICJsZWZ0IiwgIm1pZGRsZSIsICJyaWdodCJdLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiTW91c2UgYnV0dG9uIChkZWZhdWx0OiBcIm5vbmVcIikuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNsaWNrQ291bnQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiB0aW1lcyB0aGUgbW91c2UgYnV0
dG9uIHdhcyBjbGlja2VkIChkZWZhdWx0OiAwKS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAieCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiWCBjb29yZGlu
YXRlIG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZSdzIHZpZXdwb3J0LiJ9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInkiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
ImRlc2NyaXB0aW9uIjogIlkgY29vcmRpbmF0ZSBvZiB0aGUgZXZlbnQgcmVsYXRpdmUgdG8gdGhl
IG1haW4gZnJhbWUncyB2aWV3cG9ydC4gMCByZWZlcnMgdG8gdGhlIHRvcCBvZiB0aGUgdmlld3Bv
cnQgYW5kIFkgaW5jcmVhc2VzIGFzIGl0IHByb2NlZWRzIHRvd2FyZHMgdGhlIGJvdHRvbSBvZiB0
aGUgdmlld3BvcnQuIn0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJEaXNwYXRjaGVzIGEgbW91c2UgZXZlbnQgdG8gdGhlIHBhZ2UuIgogICAgICAg
ICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogW10KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcAppbmRleCBlNjgzNGFhNzA2
ZTc0MzAyZDQzZGQ3NTBmOWVlZTgyNjA4ODQxNGQyLi4zMzE2ODRiMjk4Nzg5YjM1ODgyMWYyNjM2
Yzc5NDRmYTI4MmFkMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5wdXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvcklucHV0QWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTcgQEAKIAogI2luY2x1ZGUgIkluc3Bl
Y3RvcklucHV0QWdlbnQuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkV2ZW50
SGFuZGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisj
aW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3Vz
ZUV2ZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg3LDYgKzkzLDY3IEBAIHZvaWQgSW5zcGVjdG9ySW5wdXRB
Z2VudDo6ZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYg
dHlwCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmtleUV2ZW50KGV2
ZW50KTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQo
RXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZp
ZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0
IGludCogY2xpY2tDb3VudCwgaW50IHgsIGludCB5KQoreworICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgY29udmVydGVkVHlwZTsKKyAgICBpZiAodHlwZSA9PSAibW91c2VQcmVzc2VkIikKKyAgICAg
ICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBlbHNl
IGlmICh0eXBlID09ICJtb3VzZVJlbGVhc2VkIikKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgZWxzZSBpZiAodHlwZSA9PSAibW91c2VN
b3ZlZCIpCisgICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
OworICAgIGVsc2UgeworICAgICAgICAqZXJyb3IgPSAiVW5yZWNvZ25pemVkIHR5cGU6ICIgKyB0
eXBlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTW91c2VCdXR0b24gY29udmVydGVk
QnV0dG9uID0gTm9CdXR0b247CisgICAgaWYgKGJ1dHRvbikgeworICAgICAgICBpZiAoKmJ1dHRv
biA9PSAibGVmdCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0b24gPSBMZWZ0QnV0dG9uOwor
ICAgICAgICBlbHNlIGlmICgqYnV0dG9uID09ICJtaWRkbGUiKQorICAgICAgICAgICAgY29udmVy
dGVkQnV0dG9uID0gTWlkZGxlQnV0dG9uOworICAgICAgICBlbHNlIGlmICgqYnV0dG9uID09ICJy
aWdodCIpCisgICAgICAgICAgICBjb252ZXJ0ZWRCdXR0b24gPSBSaWdodEJ1dHRvbjsKKyAgICAg
ICAgZWxzZSBpZiAoKmJ1dHRvbiAhPSAibm9uZSIpIHsKKyAgICAgICAgICAgICplcnJvciA9ICJV
bnJlY29nbml6ZWQgYnV0dG9uOiAiICsgKmJ1dHRvbjsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vIFNvbWUgcGxhdGZvcm1zIG1heSBoYXZlIGZsaXBwZWQg
Y29vcmRpbmF0ZSBzeXN0ZW1zLCBidXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzCisgICAgLy8gYXNz
dW1lIHRoZSBvcmlnaW4gaXMgaW4gdGhlIHRvcC1sZWZ0IG9mIHRoZSB3aW5kb3cuIENvbnZlcnQu
CisgICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3
KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coSW50UG9pbnQoeCwgeSkpOworICAgIEludFBv
aW50IGdsb2JhbFBvaW50ID0gbV9wYWdlLT5jaHJvbWUoKS0+cm9vdFZpZXdUb1NjcmVlbihJbnRS
ZWN0KEludFBvaW50KHgsIHkpLCBJbnRTaXplKDAsIDApKSkubG9jYXRpb24oKTsKKyAgICBpbnQg
Y29udmVydGVkTW9kaWZpZXJzID0gbW9kaWZpZXJzID8gKm1vZGlmaWVycyA6IDA7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IGV2ZW50KAorICAgICAgICBjb252ZXJ0ZWRQb2ludCwKKyAgICAgICAg
Z2xvYmFsUG9pbnQsCisgICAgICAgIGNvbnZlcnRlZEJ1dHRvbiwKKyAgICAgICAgY29udmVydGVk
VHlwZSwKKyAgICAgICAgY2xpY2tDb3VudCA/ICpjbGlja0NvdW50IDogMCwKKyAgICAgICAgY29u
dmVydGVkTW9kaWZpZXJzICYgUGxhdGZvcm1FdmVudDo6U2hpZnRLZXksCisgICAgICAgIGNvbnZl
cnRlZE1vZGlmaWVycyAmIFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXksCisgICAgICAgIGNvbnZlcnRl
ZE1vZGlmaWVycyAmIFBsYXRmb3JtRXZlbnQ6OkFsdEtleSwKKyAgICAgICAgY29udmVydGVkTW9k
aWZpZXJzICYgUGxhdGZvcm1FdmVudDo6TWV0YUtleSwKKyAgICAgICAgdGltZXN0YW1wID8gKnRp
bWVzdGFtcCA6IGN1cnJlbnRUaW1lKCkpOworCisgICAgRXZlbnRIYW5kbGVyKiBoYW5kbGVyID0g
bV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCk7CisgICAgc3dpdGNoIChjb252ZXJ0
ZWRUeXBlKSB7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ6CisgICAgICAg
IGhhbmRsZXItPmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVudCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKKyAgICAgICAgaGFuZGxlci0+
aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoZXZlbnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6CisgICAgICAgIGhhbmRsZXItPmhhbmRsZU1vdXNl
TW92ZUV2ZW50KGV2ZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
KmVycm9yID0gIlVuaGFuZGxlZCB0eXBlOiAiICsgdHlwZTsKKyAgICB9Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRleCAyMGM0YzA5NTdl
YWQzMzdhZWIwNDg1ZmIxNDkwZTJlNTE3Mzc4YTE0Li4yNGEyNjRiYzg1Y2EzNjc5ZTJhZmE1NWE4
Y2VlY2NhMGQzNTQwZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5wdXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnB1dEFnZW50LmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogCiAgICAgLy8gTWV0aG9k
cyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIHNpbXVsYXRpbmcgaW5wdXQuCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3Qg
U3RyaW5nKiB0ZXh0LCBjb25zdCBTdHJpbmcqIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcq
IGtleUlkZW50aWZpZXIsIGNvbnN0IGludCogd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBp
bnQqIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG1hY0NoYXJDb2RlLCBjb25zdCBi
b29sKiBhdXRvUmVwZWF0LCBjb25zdCBib29sKiBpc0tleXBhZCwgY29uc3QgYm9vbCogaXNTeXN0
ZW1LZXkpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1vdXNlRXZlbnQoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUq
IHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3VudCwg
aW50IHgsIGludCB5KTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JJbnB1dEFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIFBhZ2UqKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYWFlZmYw
ZWUyNjBjYzBjZTk2OTU2NjYyZTlmM2M4YzI0NDkxYWEzLi4zZTQyZjcwNDFmMTYzZDMwNDQ3ODc0
MDRjOGMzOTE3ZjUzOWYwOWZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTItMTAgIEtl
biBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0luc3BlY3Rvcl0gQWRk
IGNvbW1hbmQgZm9yIGRpc3BhdGNoaW5nIG1vdXNlIGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDA3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYXRmb3JtIG1vdXNlIGV2ZW50IGNvb3Jk
aW5hdGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyB3aW5kb3csCisgICAgICAgIGJ1
dCB0aGUgaW5zcGVjdG9yIGNvbW1hbmQgYXNzdW1lcyB0aGV5IGZvbGxvdyBzdGFuZGFyZCB3ZWIg
Y29vcmRpbmF0ZXMsCisgICAgICAgIHdoZXJlIHRoZSBvcmlnaW4gaXMgYXQgdGhlIHRvcCBsZWZ0
IG9mIHRoZSBwYWdlIGFuZCB5IGluY3JlYXNlcyBhcyB5b3UKKyAgICAgICAgZ28gZG93bi4gV2Ug
Y29udmVydCB0aGUgY29vcmRpbmF0ZXMgdG8gdGhlIHdpbmRvdyBiZWZvcmUgY29uc3RydWN0aW5n
CisgICAgICAgIHRoZSBldmVudC4gVGhpcyBhbHNvIGZpeGVzIHRoZSBmYWN0IHRoYXQgc29tZSBw
bGF0Zm9ybXMgaGF2ZSBmbGlwcGVkCisgICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtcy4KKyAgICAg
ICAgQWxzbywgdXBkYXRlIGRpc3BhdGNoS2V5RXZlbnQgdGVzdCB0byBmb2xsb3cgc2ltcGxlciBk
aXNwYXRjaE1vdXNlRXZlbnQKKyAgICAgICAgdGVzdC4KKworICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9pbnB1dC9kaXNwYXRjaEtleUV2ZW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
LXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9pbnB1dC9kaXNwYXRjaE1vdXNlRXZlbnQuaHRt
bDogQWRkZWQuCisKIDIwMTItMTItMDQgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIG1hcmsgY3NzMy9maWx0ZXJzL2VmZmVjdC1yZWZlcmVu
Y2UtaHcuaHRtbCBhcyBmYWlsaW5nIHJhdGhlciB0aGFuIGNyYXNoaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoS2V5RXZlbnQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9pbnB1dC9kaXNwYXRjaEtleUV2ZW50
Lmh0bWwKaW5kZXggMzAwY2Y0NWQ0NTRmZWE0YTMzN2NhOTJmN2MxOTJmYzg4NWFhNWVjOC4uOTE0
ZTMyYTdmY2ZjOTVmZjUxYmNlMjUzY2I0ZTk3MmM1NjY3NTk4MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoS2V5RXZlbnQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaW5wdXQvZGlzcGF0Y2hLZXlFdmVudC5o
dG1sCkBAIC03LDcgKzcsOCBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGxv
Z0V2ZW50KTsKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsIGxvZ0V2ZW50KTsK
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIGxvZ0V2ZW50KTsKIAotZnVuY3Rpb24g
bG9nRXZlbnQoZXZlbnQpIHsKK2Z1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KQorewogICAgIGxvZygi
LS0tLS1FdmVudC0tLS0tIik7CiAgICAgbG9nKCJ0eXBlOiAiICsgZXZlbnQudHlwZSk7CiAgICAg
aWYgKGV2ZW50LmFsdEtleSkKQEAgLTUwLDE4ICs1MSwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgfQogICAgIF07CiAKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJJbnB1dC5k
aXNwYXRjaEtleUV2ZW50IiwgZXZlbnRzLnNoaWZ0KCksIGNvbnRpbnVlVGVzdCk7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspCisgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIklucHV0LmRpc3BhdGNoS2V5RXZlbnQiLCBldmVudHNbaV0sIGNoZWNr
UmVzcG9uc2UuYmluZCh1bmRlZmluZWQsIGkgPT0gZXZlbnRzLmxlbmd0aCAtIDEpKTsKIAotICAg
IGZ1bmN0aW9uIGNvbnRpbnVlVGVzdChtc2cpIHsKLSAgICAgICAgaWYgKG1zZy5lcnJvcikgewor
ICAgIGZ1bmN0aW9uIGNoZWNrUmVzcG9uc2UoaXNMYXN0Q29tbWFuZCwgbXNnKQorICAgIHsKKyAg
ICAgICAgaWYgKG1zZy5lcnJvcikKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFcnJv
cjogIiArIG1zZy5lcnJvci5tZXNzYWdlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoZXZlbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IklucHV0LmRpc3BhdGNoS2V5RXZlbnQiLCBldmVudHMuc2hpZnQoKSwgY29udGludWVUZXN0KTsK
LSAgICAgICAgZWxzZQorICAgICAgICBpZiAoaXNMYXN0Q29tbWFuZCkKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaW5wdXQvZGlzcGF0Y2hNb3Vz
ZUV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjE0N2NjOGZlZjM5ODhmZjVkYmI1NzU5
ODdlNzAyYjEzMzU4YTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorLS0tLS1FdmVudC0tLS0tCit0eXBlOiBtb3VzZWRvd24KK2J1dHRvbjogMAoreDog
MTAwCit5OiAyMDAKKy0tLS0tRXZlbnQtLS0tLQordHlwZTogbW91c2V1cAorYnV0dG9uOiAwCit4
OiAxMDAKK3k6IDIwMAorLS0tLS1FdmVudC0tLS0tCit0eXBlOiBtb3VzZW1vdmUKK2J1dHRvbjog
MAorc2hpZnRLZXkKK3g6IDUwCit5OiAxNTAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2lucHV0L2Rpc3BhdGNoTW91c2VFdmVudC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ5ZWQ2N2RmOWY1ZGY1MGU2OWYzODMwNmI5NDcwZGU2MGJmZTdmMzQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaW5wdXQvZGlzcGF0Y2hN
b3VzZUV2ZW50Lmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBsb2dFdmVudCk7Cit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIGxvZ0V2ZW50KTsKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtb3VzZW1vdmUiLCBsb2dFdmVudCk7CisKK2Z1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50
KQoreworICAgIGxvZygiLS0tLS1FdmVudC0tLS0tIik7CisgICAgbG9nKCJ0eXBlOiAiICsgZXZl
bnQudHlwZSk7CisgICAgbG9nKCJidXR0b246ICIgKyBldmVudC5idXR0b24pOworICAgIGlmIChl
dmVudC5zaGlmdEtleSkKKyAgICAgICAgbG9nKCJzaGlmdEtleSIpOworICAgIGxvZygieDogIiAr
IGV2ZW50LngpOworICAgIGxvZygieTogIiArIGV2ZW50LnkpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgICB7CisgICAgICAgICAgICAidHlwZSI6
ICJtb3VzZVByZXNzZWQiLAorICAgICAgICAgICAgImJ1dHRvbiI6ICJsZWZ0IiwKKyAgICAgICAg
ICAgICJjbGlja0NvdW50IjogMSwKKyAgICAgICAgICAgICJ4IjogMTAwLAorICAgICAgICAgICAg
InkiOiAyMDAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInR5cGUiOiAibW91
c2VSZWxlYXNlZCIsCisgICAgICAgICAgICAiYnV0dG9uIjogImxlZnQiLAorICAgICAgICAgICAg
ImNsaWNrQ291bnQiOiAxLAorICAgICAgICAgICAgIngiOiAxMDAsCisgICAgICAgICAgICAieSI6
IDIwMAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAidHlwZSI6ICJtb3VzZU1v
dmVkIiwKKyAgICAgICAgICAgICJtb2RpZmllcnMiOiA4LCAvLyBzaGlmdAorICAgICAgICAgICAg
IngiOiA1MCwKKyAgICAgICAgICAgICJ5IjogMTUwCisgICAgICAgIH0KKyAgICBdOworCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspCisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIklucHV0LmRpc3BhdGNoTW91c2VFdmVudCIsIGV2ZW50c1tpXSwg
Y2hlY2tSZXNwb25zZS5iaW5kKHVuZGVmaW5lZCwgaSA9PSBldmVudHMubGVuZ3RoIC0gMSkpOwor
CisgICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZShpc0xhc3RDb21tYW5kLCBtc2cpCisgICAgewor
ICAgICAgICBpZiAobXNnLmVycm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVy
cm9yOiAiICsgbXNnLmVycm9yLm1lc3NhZ2UpOworICAgICAgICBpZiAoaXNMYXN0Q29tbWFuZCkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>