<?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>91607</bug_id>
          
          <creation_ts>2012-07-18 02:45:44 -0700</creation_ts>
          <short_desc>Web Inspector: Protocol Extension: add getNamedFlowCollection command</short_desc>
          <delta_ts>2012-07-31 01:19:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>91967</dependson>
          <blocked>90786</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Poenaru">andreigpoenaru</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vivekgalatage</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>672169</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-18 02:45:44 -0700</bug_when>
    <thetext>Implement the getNamedFlowCollection command from this proposed protocol extension:

https://bug-90789-attachments.webkit.org/attachment.cgi?id=152527</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672225</commentid>
    <comment_count>1</comment_count>
    <who name="Vivek Galatage">vivekgalatage</who>
    <bug_when>2012-07-18 04:13:08 -0700</bug_when>
    <thetext>Are these all proposed APIs belong to public inspector protocol APIs? Or can some of them be private APIs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672253</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-18 04:58:51 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Are these all proposed APIs belong to public inspector protocol APIs? Or can some of them be private APIs?

Does this mean if they will have &quot;hidden&quot;: true?  If yes, then they will be marked as &quot;hidden&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672258</commentid>
    <comment_count>3</comment_count>
    <who name="Vivek Galatage">vivekgalatage</who>
    <bug_when>2012-07-18 05:07:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Are these all proposed APIs belong to public inspector protocol APIs? Or can some of them be private APIs?
&gt; 
&gt; Does this mean if they will have &quot;hidden&quot;: true?  If yes, then they will be marked as &quot;hidden&quot;.

Yes that&apos;s exactly my question was. Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672386</commentid>
    <comment_count>4</comment_count>
      <attachid>153016</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-18 08:08:02 -0700</bug_when>
    <thetext>Created attachment 153016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672397</commentid>
    <comment_count>5</comment_count>
      <attachid>153016</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 08:19:50 -0700</bug_when>
    <thetext>Comment on attachment 153016
Patch

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

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:794
&gt; +    Document* document = m_domAgent-&gt;document();

You are currently getting flows from the main frame only. What if the page uses iframes or frame sets? You probably should pass context node id (from DOMAgent terms) into this method to get the flows for a given document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673454</commentid>
    <comment_count>6</comment_count>
      <attachid>153250</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-19 06:47:57 -0700</bug_when>
    <thetext>Created attachment 153250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673487</commentid>
    <comment_count>7</comment_count>
      <attachid>153250</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-19 07:24:03 -0700</bug_when>
    <thetext>Comment on attachment 153250
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        Deleted tab space

Please remove git comments from here.

&gt; LayoutTests/ChangeLog:16
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

Nuke this line

&gt; LayoutTests/inspector/styles/protocol-getNamedFlowCollection-command.html:25
&gt; +    function test() {

You probably should pick another name in order to not reuse &quot;test&quot;

&gt; LayoutTests/inspector/styles/protocol-getNamedFlowCollection-command.html:26
&gt; +        function namedFlowCallback(namedFlows) {

Please place { on the next line

&gt; LayoutTests/inspector/styles/protocol-getNamedFlowCollection-command.html:31
&gt; +                InspectorTest.completeTest();

missing return; below.

&gt; LayoutTests/inspector/styles/protocol-getNamedFlowCollection-command.html:42
&gt; +        function documentCallback(document) {

{ on the next line.

&gt; Source/WebCore/ChangeLog:2
&gt; +        Web Inspector: Protocol Extension: add getNamedFlowCollection command

missing blank line above

&gt; Source/WebCore/dom/WebKitNamedFlowCollection.cpp:48
&gt; +    return m_namedFlows;

Exposing private member for read-write does not sound good.

&gt; Source/WebCore/inspector/Inspector.json:2294
&gt; +                    { &quot;name&quot;: &quot;documentNodeId&quot;, &quot;$ref&quot;: &quot;DOM.NodeId&quot;, &quot;description&quot;: &quot;The document node id for which to get the Named Flow Collection.&quot;}

we typically call node ids &quot;nodeId&quot;

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:796
&gt; +    if (!node || !(node-&gt;isDocumentNode())) {

You should add InspectorDOMNode::assertDocumentNode instead.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:804
&gt; +    WebKitNamedFlowCollection::NamedFlowSet&amp; namedFlowSet = document-&gt;namedFlows()-&gt;namedFlows();

So you could make flow collection return array of strings instead of exposing the private object.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:807
&gt; +        if ((*it)-&gt;flowState() == WebKitNamedFlow::FlowStateNull)

This check could also be a part of the collection itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673500</commentid>
    <comment_count>8</comment_count>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-19 07:44:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:796
&gt; &gt; +    if (!node || !(node-&gt;isDocumentNode())) {
&gt; 
&gt; You should add InspectorDOMNode::assertDocumentNode instead.

I can&apos;t find &quot;InspectorDOMNode&quot;. Did you meant &quot;Node&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673527</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-19 08:20:23 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; &gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:796
&gt; &gt; &gt; +    if (!node || !(node-&gt;isDocumentNode())) {
&gt; &gt; 
&gt; &gt; You should add InspectorDOMNode::assertDocumentNode instead.
&gt; 
&gt; I can&apos;t find &quot;InspectorDOMNode&quot;. Did you meant &quot;Node&quot;?

Sorry, I meant introduce InspectorDOMAgent::assertDocument as in InspectorDOMAgent::assertNode / InspectorDOMAgent::assertElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674309</commentid>
    <comment_count>10</comment_count>
      <attachid>153444</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 01:18:19 -0700</bug_when>
    <thetext>Created attachment 153444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674329</commentid>
    <comment_count>11</comment_count>
      <attachid>153444</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-20 01:49:07 -0700</bug_when>
    <thetext>Comment on attachment 153444
Patch

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

&gt; Source/WebCore/dom/WebKitNamedFlowCollection.h:33
&gt; +#include &lt;InspectorBackendDispatcher.h&gt;

You should not make arbitrary component depend on the inspector guts. Also, these are not visible in case of !ENABLED(INSPECTOR). You should return a Vector&lt;String&gt; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674435</commentid>
    <comment_count>12</comment_count>
      <attachid>153473</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 03:54:34 -0700</bug_when>
    <thetext>Created attachment 153473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674444</commentid>
    <comment_count>13</comment_count>
      <attachid>153473</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-20 04:11:29 -0700</bug_when>
    <thetext>Comment on attachment 153473
Patch

Attachment 153473 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13309224</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674460</commentid>
    <comment_count>14</comment_count>
      <attachid>153473</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-20 04:34:36 -0700</bug_when>
    <thetext>Comment on attachment 153473
Patch

Attachment 153473 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13313174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674469</commentid>
    <comment_count>15</comment_count>
      <attachid>153480</attachid>
    <who name="Andrei Poenaru">andreigpoenaru</who>
    <bug_when>2012-07-20 05:07:23 -0700</bug_when>
    <thetext>Created attachment 153480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674479</commentid>
    <comment_count>16</comment_count>
      <attachid>153480</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 05:35:12 -0700</bug_when>
    <thetext>Comment on attachment 153480
Patch

Clearing flags on attachment: 153480

Committed r123205: &lt;http://trac.webkit.org/changeset/123205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674480</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 05:35:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153016</attachid>
            <date>2012-07-18 08:08:02 -0700</date>
            <delta_ts>2012-07-19 06:47:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91607</filename>
            <type>text/plain</type>
            <size>10511</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFt
ZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2Q1NmU4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXRO
YW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAor
VGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQgcmV0dXJucyB0
aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgorCis9PT0gQ1NTIE5hbWVkIEZsb3dzID09
PQorZmxvdzEKK2Zsb3cyCitmbG93MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0
aW9uLWNvbW1hbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDdj
NGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbApAQCAtMCwwICsxLDQ2IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisKKyAgICBmdW5j
dGlvbiBjYWxsYmFjayhuYW1lZEZsb3dzKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT0gQ1NTIE5hbWVkIEZsb3dzID09PSIpOworCisgICAgICAgIGlmICghbmFtZWRGbG93
cykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCIpCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgbmFtZWRGbG93cy5zb3J0KCk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1l
ZEZsb3dzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
bmFtZWRGbG93c1tpXSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
KyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0TmFtZWRGbG93Q29sbGVjdGlv
bkFzeW5jKGNhbGxiYWNrKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgdGhlICJnZXROYW1lZEZsb3dDb2xsZWN0aW9u
IiBjb21tYW5kIHJldHVybnMgdGhlIENTUyBOYW1lZCBGbG93cyBpbiB0aGUgcGFnZS4KKzwvcD4K
KworPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MSI+PC9hcnRpY2xlPgor
PGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4KKworPGFydGljbGUg
c3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+PC9hcnRpY2xlPgorPGRpdiBzdHlsZT0i
LXdlYmtpdC1mbG93LWZyb206IGZsb3cyIj48L2Rpdj4KKworPGFydGljbGUgc3R5bGU9Ii13ZWJr
aXQtZmxvdy1pbnRvOiBmbG93MyI+PC9hcnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93
LWZyb206IGZsb3czIj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUy
YjFjOTcuLmI3OTdlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNy0xOCAg
QW5kcmVpIFBvZW5hcnUgIDxwb2VuYXJ1QGFkb2JlLmNvbT4KKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBjb21tYW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGVk
IHRoZSBwcm90b2NvbCB3aXRoICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiBjb21tYW5kLgorICAg
ICAgICBUaGlzIGNvbW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRv
Y3VtZW50LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFt
ZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwKKworICAgICAgICAqIGRvbS9XZWJLaXROYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvd0Nv
bGxlY3Rpb246Om5hbWVkRmxvd3MpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYktpdE5hbWVkRmxvd0Nv
bGxlY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTQWdlbnQ6OmdldE5hbWVkRmxvd0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgIChJ
bnNwZWN0b3JDU1NBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aDoKKyAgICAgICAgKEluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVN
b2RlbC5wcm90b3R5cGUuZ2V0TmFtZWRGbG93Q29sbGVjdGlvbkFzeW5jKToKKwogMjAxMi0wNy0x
OCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRl
eGVkREI6IElEQkxldmVsREJCYWNraW5nU3RvcmUgY29tcGlsYXRpb24gZmFpbHMgYmVjYXVzZSBv
ZiB1bnVzZWQgdmFyaWFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0
TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93Q29sbGVjdGlvbi5jcHAKaW5kZXggYjBjZmYxMS4uOTAzMWNhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNwcApAQCAtNDMsNiArNDMs
MTEgQEAgV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbjo6V2ViS2l0TmFtZWRGbG93Q29sbGVjdGlv
bihEb2N1bWVudCogZG9jKQogewogfQogCitXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpOYW1l
ZEZsb3dTZXQmIFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246Om5hbWVkRmxvd3MoKQoreworICAg
IHJldHVybiBtX25hbWVkRmxvd3M7Cit9CisKIFdlYktpdE5hbWVkRmxvdyogV2ViS2l0TmFtZWRG
bG93Q29sbGVjdGlvbjo6Zmxvd0J5TmFtZShjb25zdCBTdHJpbmcmIGZsb3dOYW1lKQogewogICAg
IE5hbWVkRmxvd1NldDo6aXRlcmF0b3IgaXQgPSBtX25hbWVkRmxvd3MuZmluZDxTdHJpbmcsIE5h
bWVkRmxvd0hhc2hUcmFuc2xhdG9yPihmbG93TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaAppbmRleCAxMzBjNmM4Li5iMzA1YjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgKQEAgLTQy
LDggKzQyLDE0IEBAIGNsYXNzIFdlYktpdE5hbWVkRmxvdzsKIAogY2xhc3MgV2ViS2l0TmFtZWRG
bG93Q29sbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rp
b24+IHsKIHB1YmxpYzoKKyAgICBzdHJ1Y3QgTmFtZWRGbG93SGFzaEZ1bmN0aW9uczsKKyAgICBz
dHJ1Y3QgTmFtZWRGbG93SGFzaFRyYW5zbGF0b3I7CisKKyAgICB0eXBlZGVmIExpc3RIYXNoU2V0
PFdlYktpdE5hbWVkRmxvdyosIDEsIE5hbWVkRmxvd0hhc2hGdW5jdGlvbnM+IE5hbWVkRmxvd1Nl
dDsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24+IGNy
ZWF0ZShEb2N1bWVudCogZG9jKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TmFtZWRGbG93
Q29sbGVjdGlvbihkb2MpKTsgfQogCisgICAgTmFtZWRGbG93U2V0JiBuYW1lZEZsb3dzKCk7CiAg
ICAgV2ViS2l0TmFtZWRGbG93KiBmbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIFBhc3NS
ZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBlbnN1cmVGbG93V2l0aE5hbWUoY29uc3QgU3RyaW5nJik7
CiAKQEAgLTU3LDEyICs2Myw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0TmFtZWRGbG93Q29sbGVj
dGlvbihEb2N1bWVudCopOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci0KLSAgICBzdHJ1
Y3QgTmFtZWRGbG93SGFzaEZ1bmN0aW9uczsKLSAgICBzdHJ1Y3QgTmFtZWRGbG93SGFzaFRyYW5z
bGF0b3I7Ci0KLSAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFdlYktpdE5hbWVkRmxvdyosIDEsIE5h
bWVkRmxvd0hhc2hGdW5jdGlvbnM+IE5hbWVkRmxvd1NldDsKLQogICAgIE5hbWVkRmxvd1NldCBt
X25hbWVkRmxvd3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
aW5kZXggZDE3OGQ5ZC4uZDViYjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMjI4Nyw2ICsyMjg3LDE0IEBACiAgICAgICAgICAgICAgICAgInJldHVybnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZmlsZSIsICIkcmVmIjogIlNl
bGVjdG9yUHJvZmlsZSIgfQogICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0TmFtZWRGbG93Q29sbGVjdGlv
biIsCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAibmFtZWRGbG93cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6
ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBjb250YWluaW5nIHRoZSBOYW1l
ZCBGbG93cyBpbiB0aGUgZG9jdW1lbnQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvd3MgZnJvbSB0aGUg
ZG9jdW1lbnQuIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAg
fQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYTU0ZDhjOS4uYzZlZTUwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC01
MSw2ICs1MSw4IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxl
UnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0TmFt
ZWRGbG93LmgiCisjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oIgogCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTc4
Nyw2ICs3ODksMjggQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0U3VwcG9ydGVkQ1NTUHJv
cGVydGllcyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGQKICAgICBjc3NQcm9wZXJ0aWVz
ID0gcHJvcGVydGllcy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6Omdl
dE5hbWVkRmxvd0NvbGxlY3Rpb24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1fZG9tQWdlbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoIWRvY3VtZW50KSB7Cisg
ICAgICAgICplcnJvclN0cmluZyA9ICJEb2N1bWVudCBpcyBub3QgYXZhaWxhYmxlIjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5n
PiA+IG5hbWVkRmxvd3MgPSBUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7Cisg
ICAgV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbjo6TmFtZWRGbG93U2V0JiBuYW1lZEZsb3dTZXQg
PSBkb2N1bWVudC0+bmFtZWRGbG93cygpLT5uYW1lZEZsb3dzKCk7CisKKyAgICBmb3IgKFdlYktp
dE5hbWVkRmxvd0NvbGxlY3Rpb246Ok5hbWVkRmxvd1NldDo6aXRlcmF0b3IgaXQgPSBuYW1lZEZs
b3dTZXQuYmVnaW4oKTsgaXQgIT0gbmFtZWRGbG93U2V0LmVuZCgpOyArK2l0KSB7CisgICAgICAg
IGlmICgoKml0KS0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0TmFtZWRGbG93OjpGbG93U3RhdGVOdWxs
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgbmFtZWRGbG93cy0+YWRkSXRlbSgo
Kml0KS0+bmFtZSgpKTsKKyAgICB9CisKKyAgICByZXN1bHQgPSBuYW1lZEZsb3dzLnJlbGVhc2Uo
KTsKK30KKwogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6c3RhcnRTZWxlY3RvclByb2ZpbGVyKEVy
cm9yU3RyaW5nKikKIHsKICAgICBtX2N1cnJlbnRTZWxlY3RvclByb2ZpbGUgPSBhZG9wdFB0cihu
ZXcgU2VsZWN0b3JQcm9maWxlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuaAppbmRleCA3OTFhN2JmLi41MGQyYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UnVsZVNlbGVjdG9yKEVycm9yU3RyaW5nKiwgY29uc3Qg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rvciwg
UmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwogICAgIHZpcnR1YWwg
dm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nKiwgaW50IGNvbnRleHROb2RlSWQsIGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3IsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyos
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+JiByZXN1bHQpOworICAgIHZpcnR1
YWwgdm9pZCBnZXROYW1lZEZsb3dDb2xsZWN0aW9uKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVC
dWlsZGVyOjpBcnJheTxTdHJpbmc+ID4mIHJlc3VsdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRTZWxlY3RvclByb2ZpbGVyKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BT
ZWxlY3RvclByb2ZpbGVyKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OlNl
bGVjdG9yUHJvZmlsZT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCmluZGV4IDkwNzk1ODkuLmYwYWJmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMjU4LDYgKzI1OCwxMSBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXN0b3JlKCkKICNlbmRpZgogfQogCitEb2N1bWVudCog
SW5zcGVjdG9yRE9NQWdlbnQ6OmRvY3VtZW50KCkKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudC5n
ZXQoKTsKK30KKwogVmVjdG9yPERvY3VtZW50Kj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmRvY3VtZW50
cygpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50Kj4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBiMDVhYjU3Li4zMzY2YzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTE2LDYg
KzExNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKICAg
ICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKICAgICB2b2lkIHJlc2V0KCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cwppbmRleCBhYWY3OTJhLi5mNjRlZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC0xNjAsNiArMTYwLDI3IEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoq
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/QXJyYXkuPHN0cmluZz4pfSB1c2VyQ2FsbGJhY2sK
KyAgICAgKi8KKyAgICBnZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmM6IGZ1bmN0aW9uKHVzZXJD
YWxsYmFjaykKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KD9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbiwgP1dlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uKX0gdXNlckNhbGxiYWNrCisgICAgICAgICAqIEBwYXJhbSB7P1Byb3RvY29s
LkVycm9yfSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0gez9BcnJheS48c3RyaW5nPj19IG5hbWVk
Rmxvd1BheWxvYWQKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJD
YWxsYmFjaywgZXJyb3IsIG5hbWVkRmxvd1BheWxvYWQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlcnJvciB8fCAhbmFtZWRGbG93UGF5bG9hZCkKKyAgICAgICAgICAgICAgICB1c2VyQ2Fs
bGJhY2sobnVsbCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXNlckNhbGxi
YWNrKG5hbWVkRmxvd1BheWxvYWQpOworICAgICAgICB9CisKKyAgICAgICAgQ1NTQWdlbnQuZ2V0
TmFtZWRGbG93Q29sbGVjdGlvbihjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwor
ICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge0NTU0FnZW50LkNTU1J1bGVJZH0gcnVs
ZUlkCiAgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAogICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBuZXdTZWxlY3Rvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153250</attachid>
            <date>2012-07-19 06:47:57 -0700</date>
            <delta_ts>2012-07-20 01:18:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91607</filename>
            <type>text/plain</type>
            <size>11598</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjc4ZjU4Li5jNTU2ZDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDct
MTggIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgRGVsZXRl
ZCB0YWIgc3BhY2UKKworICAgICAgICBGaXhlZCBzb21lIHNwYWNlcyBpbiB0ZXN0CisKKyAgICAg
ICAgRml4ZWQgY29kaW5nIHN0eWxlCisKKyAgICAgICAgSW1wbGVtZW50ZWQgZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3RvY29sIEV4dGVuc2lvbjog
YWRkIGdldE5hbWVkRmxvd0NvbGxlY3Rpb24gY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBj
aGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlv
biBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dD
b2xsZWN0aW9uLWNvbW1hbmQuaHRtbDogQWRkZWQuCisKIDIwMTItMDctMTggIE1hcmlvIFNhbmNo
ZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gSW1w
bGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgaW4gV0tUUiBmb3IgR1RLCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxl
Y3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYzNGI5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29s
bGVjdGlvbi1jb21tYW5kLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0
IHRoZSAiZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiIgY29tbWFuZCByZXR1cm5zIHRoZSBDU1MgTmFt
ZWQgRmxvd3MgaW4gdGhlIHBhZ2UuIEJ1ZyA5MTYwNworCitmbG93MQorZmxvdzIKK2Zsb3czCisK
Kz09PSBDU1MgTmFtZWQgRmxvd3MgPT09CitmbG93MQorZmxvdzIKK2Zsb3czCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29s
bGVjdGlvbi1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3Rv
Y29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxZGZjMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFu
ZC5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKworZnVuY3Rpb24gY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkKK3sKKyAgICB2YXIgZnJh
bWVEb2MgPSB3aW5kb3cuZnJhbWVzWzBdLmRvY3VtZW50OworCisgICAgdmFyIGVsID0gZnJhbWVE
b2MuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIpOworICAgIGVsLmlubmVyVGV4dCA9ICJmbG93NCI7
CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAiZmxvdzQiOworICAgIGZyYW1lRG9jLmJv
ZHkuYXBwZW5kQ2hpbGQoZWwpOworCisgICAgZWwgPSBmcmFtZURvYy5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJvbSA9ICJmbG93NCI7CisgICAgZnJhbWVE
b2MuYm9keS5hcHBlbmRDaGlsZChlbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgiY3JlYXRlRHluYW1pY0VsZW1lbnRzKCkiLCB0ZXN0KTsKKworICAgIGZ1bmN0
aW9uIHRlc3QoKSB7CisgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxv
d3MpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQ1NTIE5hbWVk
IEZsb3dzID09PSIpOworCisgICAgICAgICAgICBpZiAoIW5hbWVkRmxvd3MpIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQg
Rmxvd3MiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuYW1lZEZsb3dzLnNvcnQoKTsKKworICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lZEZsb3dzLmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KG5hbWVkRmxvd3NbaV0pOworCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkgeworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyhkb2N1bWVudC5p
ZCwgbmFtZWRGbG93Q2FsbGJhY2spOworICAgICAgICB9CisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0
cyB0aGF0IHRoZSAiZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiIgY29tbWFuZCByZXR1cm5zIHRoZSBD
U1MgTmFtZWQgRmxvd3MgaW4gdGhlIHBhZ2UuCis8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MDciPkJ1ZyA5MTYwNzwvYT4KKzwvcD4KKworPGFydGlj
bGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MSI+ZmxvdzE8L2FydGljbGU+Cis8ZGl2
IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzEiPjwvZGl2PgorCis8YXJ0aWNsZSBzdHls
ZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3cyIj5mbG93MjwvYXJ0aWNsZT4KKzxkaXYgc3R5bGU9
Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MiI+PC9kaXY+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Vi
a2l0LWZsb3ctaW50bzogZmxvdzMiPmZsb3czPC9hcnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtp
dC1mbG93LWZyb206IGZsb3czIj48L2Rpdj4KKworPGlmcmFtZT48L2lmcmFtZT4KKworPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUyYjFjOTcuLmI0ZDliMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOCBAQAorMjAxMi0wNy0xOSAgQW5kcmVpIFBvZW5hcnUgIDxwb2VuYXJ1QGFkb2Jl
LmNvbT4KKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0
TmFtZWRGbG93Q29sbGVjdGlvbiBjb21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4dGVuZGVkIHRoZSBwcm90b2NvbCB3aXRoICJnZXROYW1lZEZs
b3dDb2xsZWN0aW9uIiBjb21tYW5kLgorICAgICAgICBUaGlzIGNvbW1hbmQgcmV0dXJucyB0aGUg
Q1NTIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50LgorCisgICAgICAgIFRlc3Q6IGluc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlvbi1jb21tYW5kLmh0bWwK
KworICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246Om5hbWVkRmxvd3MpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaDoK
KyAgICAgICAgKFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JDU1NBZ2VudCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyk6
CisKIDIwMTItMDctMTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCOiBJREJMZXZlbERCQmFja2luZ1N0b3JlIGNvbXBpbGF0aW9uIGZh
aWxzIGJlY2F1c2Ugb2YgdW51c2VkIHZhcmlhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCmluZGV4IGIwY2ZmMTEuLjkwMzFjYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAK
QEAgLTQzLDYgKzQzLDExIEBAIFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246OldlYktpdE5hbWVk
Rmxvd0NvbGxlY3Rpb24oRG9jdW1lbnQqIGRvYykKIHsKIH0KIAorV2ViS2l0TmFtZWRGbG93Q29s
bGVjdGlvbjo6TmFtZWRGbG93U2V0JiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpuYW1lZEZs
b3dzKCkKK3sKKyAgICByZXR1cm4gbV9uYW1lZEZsb3dzOworfQorCiBXZWJLaXROYW1lZEZsb3cq
IFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246OmZsb3dCeU5hbWUoY29uc3QgU3RyaW5nJiBmbG93
TmFtZSkKIHsKICAgICBOYW1lZEZsb3dTZXQ6Oml0ZXJhdG9yIGl0ID0gbV9uYW1lZEZsb3dzLmZp
bmQ8U3RyaW5nLCBOYW1lZEZsb3dIYXNoVHJhbnNsYXRvcj4oZmxvd05hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgKaW5kZXggMTMwYzZjOC4u
YjMwNWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0Nv
bGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVj
dGlvbi5oCkBAIC00Miw4ICs0MiwxNCBAQCBjbGFzcyBXZWJLaXROYW1lZEZsb3c7CiAKIGNsYXNz
IFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXROYW1l
ZEZsb3dDb2xsZWN0aW9uPiB7CiBwdWJsaWM6CisgICAgc3RydWN0IE5hbWVkRmxvd0hhc2hGdW5j
dGlvbnM7CisgICAgc3RydWN0IE5hbWVkRmxvd0hhc2hUcmFuc2xhdG9yOworCisgICAgdHlwZWRl
ZiBMaXN0SGFzaFNldDxXZWJLaXROYW1lZEZsb3cqLCAxLCBOYW1lZEZsb3dIYXNoRnVuY3Rpb25z
PiBOYW1lZEZsb3dTZXQ7CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3dD
b2xsZWN0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIGRvYykgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YktpdE5hbWVkRmxvd0NvbGxlY3Rpb24oZG9jKSk7IH0KIAorICAgIE5hbWVkRmxvd1NldCYgbmFt
ZWRGbG93cygpOwogICAgIFdlYktpdE5hbWVkRmxvdyogZmxvd0J5TmFtZShjb25zdCBTdHJpbmcm
KTsKICAgICBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4gZW5zdXJlRmxvd1dpdGhOYW1lKGNv
bnN0IFN0cmluZyYpOwogCkBAIC01NywxMiArNjMsNiBAQCBwcml2YXRlOgogICAgIFdlYktpdE5h
bWVkRmxvd0NvbGxlY3Rpb24oRG9jdW1lbnQqKTsKIAogICAgIERvY3VtZW50KiBtX2RvY3VtZW50
OwotCi0gICAgc3RydWN0IE5hbWVkRmxvd0hhc2hGdW5jdGlvbnM7Ci0gICAgc3RydWN0IE5hbWVk
Rmxvd0hhc2hUcmFuc2xhdG9yOwotCi0gICAgdHlwZWRlZiBMaXN0SGFzaFNldDxXZWJLaXROYW1l
ZEZsb3cqLCAxLCBOYW1lZEZsb3dIYXNoRnVuY3Rpb25zPiBOYW1lZEZsb3dTZXQ7Ci0KICAgICBO
YW1lZEZsb3dTZXQgbV9uYW1lZEZsb3dzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCmluZGV4IGQxNzhkOWQuLjcwYzBiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTIyODcsNiArMjI4NywxNyBAQAogICAgICAgICAgICAg
ICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2ZpbGUi
LCAiJHJlZiI6ICJTZWxlY3RvclByb2ZpbGUiIH0KICAgICAgICAgICAgICAgICBdCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldE5hbWVk
Rmxvd0NvbGxlY3Rpb24iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImRvY3VtZW50Tm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5v
ZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZCBmb3Igd2hpY2ggdG8g
Z2V0IHRoZSBOYW1lZCBGbG93IENvbGxlY3Rpb24uIn0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im5hbWVkRmxvd3MiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAic3RyaW5n
IiB9LCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgY29udGFpbmluZyB0aGUgTmFtZWQgRmxvd3Mg
aW4gdGhlIGRvY3VtZW50LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50
LiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAgICAg
ICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE1NGQ4YzkuLjJiYmY0MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNTEsNiArNTEs
OCBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIK
ICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgorI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5o
IgorI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaCIKIAogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC03ODcsNiArNzg5
LDMwIEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMo
RXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkCiAgICAgY3NzUHJvcGVydGllcyA9IHByb3Bl
cnRpZXMucmVsZWFzZSgpOwogfQogCit2b2lkIEluc3BlY3RvckNTU0FnZW50OjpnZXROYW1lZEZs
b3dDb2xsZWN0aW9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4mIHJlc3VsdCkKK3sKKyAgICBOb2RlKiBub2Rl
ID0gbV9kb21BZ2VudC0+bm9kZUZvcklkKG5vZGVJZCk7CisKKyAgICBpZiAoIW5vZGUgfHwgIShu
b2RlLT5pc0RvY3VtZW50Tm9kZSgpKSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRG9jdW1l
bnQgaXMgbm90IGF2YWlsYWJsZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpOworCisgICAgUmVm
UHRyPFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gbmFtZWRGbG93cyA9IFR5cGVCdWlsZGVy
OjpBcnJheTxTdHJpbmc+OjpjcmVhdGUoKTsKKyAgICBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9u
OjpOYW1lZEZsb3dTZXQmIG5hbWVkRmxvd1NldCA9IGRvY3VtZW50LT5uYW1lZEZsb3dzKCktPm5h
bWVkRmxvd3MoKTsKKworICAgIGZvciAoV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbjo6TmFtZWRG
bG93U2V0OjppdGVyYXRvciBpdCA9IG5hbWVkRmxvd1NldC5iZWdpbigpOyBpdCAhPSBuYW1lZEZs
b3dTZXQuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCgqaXQpLT5mbG93U3RhdGUoKSA9PSBX
ZWJLaXROYW1lZEZsb3c6OkZsb3dTdGF0ZU51bGwpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBuYW1lZEZsb3dzLT5hZGRJdGVtKCgqaXQpLT5uYW1lKCkpOworICAgIH0KKworICAg
IHJlc3VsdCA9IG5hbWVkRmxvd3MucmVsZWFzZSgpOworfQorCiB2b2lkIEluc3BlY3RvckNTU0Fn
ZW50OjpzdGFydFNlbGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqKQogewogICAgIG1fY3VycmVu
dFNlbGVjdG9yUHJvZmlsZSA9IGFkb3B0UHRyKG5ldyBTZWxlY3RvclByb2ZpbGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDc5MWE3YmYu
LjljZWFmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSdWxl
U2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcnVs
ZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NT
UnVsZT4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJ1bGUoRXJyb3JTdHJpbmcqLCBp
bnQgY29udGV4dE5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPFR5cGVCdWls
ZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxT
dHJpbmc+ID4mIHJlc3VsdCk7CisgICAgdmlydHVhbCB2b2lkIGdldE5hbWVkRmxvd0NvbGxlY3Rp
b24oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0
cmluZz4gPiYgcmVzdWx0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNlbGVjdG9yUHJvZmls
ZXIoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9yUHJvZmlsZXIo
RXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U2VsZWN0b3JQcm9maWxlPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHls
ZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1v
ZGVsLmpzCmluZGV4IGFhZjc5MmEuLjQxMDJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTE2MCw2ICsxNjAsMjgg
QEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCisgICAgICogQHBh
cmFtIHtmdW5jdGlvbig/QXJyYXkuPHN0cmluZz4pfSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KKyAg
ICBnZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLCA/V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVj
bGFyYXRpb24pfSB1c2VyQ2FsbGJhY2sKKyAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJy
b3J9IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7P0FycmF5LjxzdHJpbmc+PX0gbmFtZWRGbG93
UGF5bG9hZAorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxi
YWNrLCBlcnJvciwgbmFtZWRGbG93UGF5bG9hZCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KGVycm9yIHx8ICFuYW1lZEZsb3dQYXlsb2FkKQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFj
ayhudWxsKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
bmFtZWRGbG93UGF5bG9hZCk7CisgICAgICAgIH0KKworICAgICAgICBDU1NBZ2VudC5nZXROYW1l
ZEZsb3dDb2xsZWN0aW9uKG5vZGVJZCwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2FsbGJhY2sp
KTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtDU1NBZ2VudC5DU1NSdWxlSWR9
IHJ1bGVJZAogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gbmV3U2VsZWN0b3IK
</data>
<flag name="review"
          id="162163"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153444</attachid>
            <date>2012-07-20 01:18:19 -0700</date>
            <delta_ts>2012-07-20 03:55:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91607</filename>
            <type>text/plain</type>
            <size>12730</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjc4ZjU4Li4xN2Y3ZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDct
MjAgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBj
b21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSB0ZXN0IGJ1aWxkcyBhIHdlYnBhZ2Ugd2l0aCAzIE5hbWVkIEZsb3dzIGluIHRoZSBtYWluIGZy
YW1lIGFuZCAxIE5hbWVkIEZsb3cgaW4gYW4gaWZyYW1lLgorICAgICAgICBCZWNhdXNlIHRoZSBn
ZXROYW1lZEZsb3dDb2xsZWN0aW9uIGNvbW1hbmQgaXMgZXhlY3V0ZWQgd2l0aCB0aGUgbWFpbiBk
b2N1bWVudCBub2RlIGlkIGFzIGFuIGFyZ3VtZW50LAorICAgICAgICBpdCBzaG91bGQgcmV0dXJu
IG9ubHkgdGhlIGZpcnN0IDMgTmFtZWQgRmxvd3MuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTE4ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIElt
cGxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGluIFdLVFIgZm9yIEdUSwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xs
ZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MzRiOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhh
dCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5h
bWVkIEZsb3dzIGluIHRoZSBwYWdlLiBCdWcgOTE2MDcKKworZmxvdzEKK2Zsb3cyCitmbG93Mwor
Cis9PT0gQ1NTIE5hbWVkIEZsb3dzID09PQorZmxvdzEKK2Zsb3cyCitmbG93MworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZGZlNWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1h
bmQuaHRtbApAQCAtMCwwICsxLDc1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGNyZWF0ZUR5bmFtaWNFbGVtZW50cygpCit7CisgICAgdmFyIGZy
YW1lRG9jID0gd2luZG93LmZyYW1lc1swXS5kb2N1bWVudDsKKworICAgIHZhciBlbCA9IGZyYW1l
RG9jLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTsKKyAgICBlbC5pbm5lclRleHQgPSAiZmxvdzQi
OworICAgIGVsLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3c0IjsKKyAgICBmcmFtZURvYy5i
b2R5LmFwcGVuZENoaWxkKGVsKTsKKworICAgIGVsID0gZnJhbWVEb2MuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAiZmxvdzQiOworICAgIGZyYW1l
RG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImNyZWF0ZUR5bmFtaWNFbGVtZW50cygpIiwgdGVzdFN0ZXApOworCisgICAg
ZnVuY3Rpb24gdGVzdFN0ZXAoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2Fs
bGJhY2sobmFtZWRGbG93cykKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PSBDU1MgTmFtZWQgRmxvd3MgPT09Iik7CisKKyAgICAgICAgICAgIGlmICgh
bmFtZWRGbG93cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3MiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmFtZWRGbG93cy5zb3J0KCk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZsb3dzW2ldKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5
bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7
CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPgorVGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQg
cmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgorPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcgOTE2MDc8L2E+Cis8
L3A+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPmZsb3cxPC9h
cnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4KKwor
PGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+ZmxvdzI8L2FydGljbGU+
Cis8ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgorCis8YXJ0aWNs
ZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj5mbG93MzwvYXJ0aWNsZT4KKzxkaXYg
c3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+CisKKzxpZnJhbWU+PC9pZnJh
bWU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMmIxYzk3Li5hZjc3ZTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDctMjAgIEFuZHJlaSBQb2VuYXJ1ICA8
cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgRXh0
ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBjb21tYW5kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGVkIHRoZSBwcm90b2NvbCB3
aXRoICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiBjb21tYW5kLgorICAgICAgICBUaGlzIGNvbW1h
bmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50LgorCisgICAg
ICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlv
bi1jb21tYW5kLmh0bWwKKworICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246Om5hbWVk
Rmxvd3NOYW1lcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFt
ZWRGbG93Q29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NB
Z2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNT
U0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydERvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgor
ICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZS5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmMpOgorCiAyMDEyLTA3LTE4ICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWRE
QjogSURCTGV2ZWxEQkJhY2tpbmdTdG9yZSBjb21waWxhdGlvbiBmYWlscyBiZWNhdXNlIG9mIHVu
dXNlZCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcAppbmRleCBiMGNmZjExLi5lNDlhZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCkBAIC00Myw2ICs0MywyMCBA
QCBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uKERv
Y3VtZW50KiBkb2MpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmlu
Zz4gPiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpuYW1lZEZsb3dzTmFtZXMoKQoreworICAg
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+IG5hbWVkRmxvd3MgPSBUeXBlQnVp
bGRlcjo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7CisKKyAgICBmb3IgKE5hbWVkRmxvd1NldDo6
aXRlcmF0b3IgaXQgPSBtX25hbWVkRmxvd3MuYmVnaW4oKTsgaXQgIT0gbV9uYW1lZEZsb3dzLmVu
ZCgpOyArK2l0KSB7CisgICAgICAgIGlmICgoKml0KS0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0TmFt
ZWRGbG93OjpGbG93U3RhdGVOdWxsKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
bmFtZWRGbG93cy0+YWRkSXRlbSgoKml0KS0+bmFtZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4g
bmFtZWRGbG93cy5yZWxlYXNlKCk7Cit9CisKIFdlYktpdE5hbWVkRmxvdyogV2ViS2l0TmFtZWRG
bG93Q29sbGVjdGlvbjo6Zmxvd0J5TmFtZShjb25zdCBTdHJpbmcmIGZsb3dOYW1lKQogewogICAg
IE5hbWVkRmxvd1NldDo6aXRlcmF0b3IgaXQgPSBtX25hbWVkRmxvd3MuZmluZDxTdHJpbmcsIE5h
bWVkRmxvd0hhc2hUcmFuc2xhdG9yPihmbG93TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaAppbmRleCAxMzBjNmM4Li5lYjQ2NTY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgKQEAgLTMw
LDYgKzMwLDggQEAKICNpZm5kZWYgV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbl9oCiAjZGVmaW5l
IFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb25faAogCisjaW5jbHVkZSA8SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaD4KKwogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ0LDYgKzQ2
LDcgQEAgY2xhc3MgV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIGRvYykgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24oZG9jKSk7IH0KIAor
ICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBuYW1lZEZsb3dzTmFt
ZXMoKTsKICAgICBXZWJLaXROYW1lZEZsb3cqIGZsb3dCeU5hbWUoY29uc3QgU3RyaW5nJik7CiAg
ICAgUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3c+IGVuc3VyZUZsb3dXaXRoTmFtZShjb25zdCBT
dHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGQx
NzhkOWQuLmI5M2U4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
QEAgLTIyODcsNiArMjI4NywxNyBAQAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb2ZpbGUiLCAiJHJlZiI6ICJTZWxlY3RvclBy
b2ZpbGUiIH0KICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJuYW1lIjogImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGRv
Y3VtZW50IG5vZGUgaWQgZm9yIHdoaWNoIHRvIGdldCB0aGUgTmFtZWQgRmxvdyBDb2xsZWN0aW9u
LiJ9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lZEZsb3dzIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0aW9uIjogIkFuIGFycmF5
IGNvbnRhaW5pbmcgdGhlIE5hbWVkIEZsb3dzIGluIHRoZSBkb2N1bWVudC4iIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBO
YW1lZCBGbG93cyBmcm9tIHRoZSBkb2N1bWVudC4iLAorICAgICAgICAgICAgICAgICJoaWRkZW4i
OiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBh
NTRkOGM5Li5lZDRhN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
KyNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmgiCiAKICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzg3LDYgKzc4OCwx
NSBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVy
cm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZAogICAgIGNzc1Byb3BlcnRpZXMgPSBwcm9wZXJ0
aWVzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TmFtZWRGbG93
Q29sbGVjdGlvbihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlB0cjxU
eXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+JiByZXN1bHQpCit7CisgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9kb21BZ2VudC0+YXNzZXJ0RG9jdW1lbnQoZXJyb3JTdHJpbmcsIG5vZGVJZCk7
CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzdWx0ID0gZG9j
dW1lbnQtPm5hbWVkRmxvd3MoKS0+bmFtZWRGbG93c05hbWVzKCk7Cit9CisKIHZvaWQgSW5zcGVj
dG9yQ1NTQWdlbnQ6OnN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyopCiB7CiAgICAg
bV9jdXJyZW50U2VsZWN0b3JQcm9maWxlID0gYWRvcHRQdHIobmV3IFNlbGVjdG9yUHJvZmlsZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXgg
NzkxYTdiZi4uOWNlYWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldFJ1bGVTZWxlY3RvcihFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiBydWxlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUnVsZShFcnJvclN0
cmluZyosIGludCBjb250ZXh0Tm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGdl
dFN1cHBvcnRlZENTU1Byb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbihFcnJvclN0cmluZyosIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
QXJyYXk8U3RyaW5nPiA+JiByZXN1bHQpOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2VsZWN0
b3JQcm9maWxlcihFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wU2VsZWN0b3JQ
cm9maWxlcihFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTZWxlY3RvclBy
b2ZpbGU+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAppbmRleCA5MDc5NTg5Li42MDU4NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM3NSw2ICszNzUsMTkgQEAgTm9kZSogSW5z
cGVjdG9yRE9NQWdlbnQ6OmFzc2VydE5vZGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQg
bm9kZUlkKQogICAgIHJldHVybiBub2RlOwogfQogCitEb2N1bWVudCogSW5zcGVjdG9yRE9NQWdl
bnQ6OmFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkK
K3sKKyAgICBOb2RlKiBub2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCEobm9kZS0+aXNEb2N1
bWVudE5vZGUoKSkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkRvY3VtZW50IGlzIG5vdCBh
dmFpbGFibGUiOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERvY3VtZW50Kj4obm9kZSk7Cit9CisKIEVsZW1lbnQqIEluc3BlY3RvckRPTUFnZW50Ojph
c3NlcnRFbGVtZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkKIHsKICAg
ICBOb2RlKiBub2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggYjA1YWI1Ny4uNDQ0
ODkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTIwMCw2ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNXaGl0ZXNwYWNl
KE5vZGUqKTsKIAogICAgIE5vZGUqIGFzc2VydE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlk
KTsKKyAgICBEb2N1bWVudCogYXNzZXJ0RG9jdW1lbnQoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlk
KTsKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gb3RoZXIgYWdlbnRzLgogICAgIEluc3Bl
Y3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KCkgeyByZXR1cm4gbV9wYWdlQWdlbnQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpp
bmRleCBhYWY3OTJhLi40MTAyZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC0xNjAsNiArMTYwLDI4IEBAIFdlYklu
c3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisg
ICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAorICAgICAqIEBwYXJhbSB7ZnVu
Y3Rpb24oP0FycmF5LjxzdHJpbmc+KX0gdXNlckNhbGxiYWNrCisgICAgICovCisgICAgZ2V0TmFt
ZWRGbG93Q29sbGVjdGlvbkFzeW5jOiBmdW5jdGlvbihub2RlSWQsIHVzZXJDYWxsYmFjaykKKyAg
ICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbiwgP1dlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
KX0gdXNlckNhbGxiYWNrCisgICAgICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJv
cgorICAgICAgICAgKiBAcGFyYW0gez9BcnJheS48c3RyaW5nPj19IG5hbWVkRmxvd1BheWxvYWQK
KyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywgZXJy
b3IsIG5hbWVkRmxvd1BheWxvYWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8
fCAhbmFtZWRGbG93UGF5bG9hZCkKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG5hbWVkRmxv
d1BheWxvYWQpOworICAgICAgICB9CisKKyAgICAgICAgQ1NTQWdlbnQuZ2V0TmFtZWRGbG93Q29s
bGVjdGlvbihub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTUnVsZUlkfSBydWxlSWQK
ICAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCiAgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5ld1NlbGVjdG9yCg==
</data>
<flag name="review"
          id="162401"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153473</attachid>
            <date>2012-07-20 03:54:34 -0700</date>
            <delta_ts>2012-07-20 05:07:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91607</filename>
            <type>text/plain</type>
            <size>12836</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjc4ZjU4Li4xN2Y3ZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDct
MjAgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBj
b21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSB0ZXN0IGJ1aWxkcyBhIHdlYnBhZ2Ugd2l0aCAzIE5hbWVkIEZsb3dzIGluIHRoZSBtYWluIGZy
YW1lIGFuZCAxIE5hbWVkIEZsb3cgaW4gYW4gaWZyYW1lLgorICAgICAgICBCZWNhdXNlIHRoZSBn
ZXROYW1lZEZsb3dDb2xsZWN0aW9uIGNvbW1hbmQgaXMgZXhlY3V0ZWQgd2l0aCB0aGUgbWFpbiBk
b2N1bWVudCBub2RlIGlkIGFzIGFuIGFyZ3VtZW50LAorICAgICAgICBpdCBzaG91bGQgcmV0dXJu
IG9ubHkgdGhlIGZpcnN0IDMgTmFtZWQgRmxvd3MuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTE4ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIElt
cGxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGluIFdLVFIgZm9yIEdUSwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xs
ZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MzRiOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhh
dCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5h
bWVkIEZsb3dzIGluIHRoZSBwYWdlLiBCdWcgOTE2MDcKKworZmxvdzEKK2Zsb3cyCitmbG93Mwor
Cis9PT0gQ1NTIE5hbWVkIEZsb3dzID09PQorZmxvdzEKK2Zsb3cyCitmbG93MworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZGZlNWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1h
bmQuaHRtbApAQCAtMCwwICsxLDc1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGNyZWF0ZUR5bmFtaWNFbGVtZW50cygpCit7CisgICAgdmFyIGZy
YW1lRG9jID0gd2luZG93LmZyYW1lc1swXS5kb2N1bWVudDsKKworICAgIHZhciBlbCA9IGZyYW1l
RG9jLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTsKKyAgICBlbC5pbm5lclRleHQgPSAiZmxvdzQi
OworICAgIGVsLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3c0IjsKKyAgICBmcmFtZURvYy5i
b2R5LmFwcGVuZENoaWxkKGVsKTsKKworICAgIGVsID0gZnJhbWVEb2MuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAiZmxvdzQiOworICAgIGZyYW1l
RG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImNyZWF0ZUR5bmFtaWNFbGVtZW50cygpIiwgdGVzdFN0ZXApOworCisgICAg
ZnVuY3Rpb24gdGVzdFN0ZXAoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2Fs
bGJhY2sobmFtZWRGbG93cykKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PSBDU1MgTmFtZWQgRmxvd3MgPT09Iik7CisKKyAgICAgICAgICAgIGlmICgh
bmFtZWRGbG93cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3MiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmFtZWRGbG93cy5zb3J0KCk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZsb3dzW2ldKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5
bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7
CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPgorVGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQg
cmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgorPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcgOTE2MDc8L2E+Cis8
L3A+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPmZsb3cxPC9h
cnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4KKwor
PGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+ZmxvdzI8L2FydGljbGU+
Cis8ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgorCis8YXJ0aWNs
ZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj5mbG93MzwvYXJ0aWNsZT4KKzxkaXYg
c3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+CisKKzxpZnJhbWU+PC9pZnJh
bWU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMmIxYzk3Li5hZjc3ZTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDctMjAgIEFuZHJlaSBQb2VuYXJ1ICA8
cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgRXh0
ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBjb21tYW5kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGVkIHRoZSBwcm90b2NvbCB3
aXRoICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiBjb21tYW5kLgorICAgICAgICBUaGlzIGNvbW1h
bmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50LgorCisgICAg
ICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlv
bi1jb21tYW5kLmh0bWwKKworICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246Om5hbWVk
Rmxvd3NOYW1lcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFt
ZWRGbG93Q29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NB
Z2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNT
U0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydERvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgor
ICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZS5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmMpOgorCiAyMDEyLTA3LTE4ICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWRE
QjogSURCTGV2ZWxEQkJhY2tpbmdTdG9yZSBjb21waWxhdGlvbiBmYWlscyBiZWNhdXNlIG9mIHVu
dXNlZCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcAppbmRleCBiMGNmZjExLi41OTgwZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCkBAIC00Myw2ICs0MywyMCBA
QCBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uKERv
Y3VtZW50KiBkb2MpCiB7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IFdlYktpdE5hbWVkRmxvd0NvbGxl
Y3Rpb246Om5hbWVkRmxvd3NOYW1lcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZWRGbG93
czsKKworICAgIGZvciAoTmFtZWRGbG93U2V0OjppdGVyYXRvciBpdCA9IG1fbmFtZWRGbG93cy5i
ZWdpbigpOyBpdCAhPSBtX25hbWVkRmxvd3MuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCgq
aXQpLT5mbG93U3RhdGUoKSA9PSBXZWJLaXROYW1lZEZsb3c6OkZsb3dTdGF0ZU51bGwpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBuYW1lZEZsb3dzLmFwcGVuZCgoKml0KS0+bmFt
ZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbmFtZWRGbG93czsKK30KKwogV2ViS2l0TmFtZWRG
bG93KiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpmbG93QnlOYW1lKGNvbnN0IFN0cmluZyYg
Zmxvd05hbWUpCiB7CiAgICAgTmFtZWRGbG93U2V0OjppdGVyYXRvciBpdCA9IG1fbmFtZWRGbG93
cy5maW5kPFN0cmluZywgTmFtZWRGbG93SGFzaFRyYW5zbGF0b3I+KGZsb3dOYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oCmluZGV4IDEzMGM2
YzguLmQ5NTJlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3dDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0Nv
bGxlY3Rpb24uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDQsNiArNDUsNyBAQCBjbGFzcyBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbj4gewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24+IGNyZWF0ZShEb2N1bWVudCog
ZG9jKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbihkb2Mp
KTsgfQogCisgICAgVmVjdG9yPFN0cmluZz4gbmFtZWRGbG93c05hbWVzKCk7CiAgICAgV2ViS2l0
TmFtZWRGbG93KiBmbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIFBhc3NSZWZQdHI8V2Vi
S2l0TmFtZWRGbG93PiBlbnN1cmVGbG93V2l0aE5hbWUoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBkMTc4ZDlkLi5iOTNlODkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yMjg3LDYgKzIyODcs
MTcgQEAKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJwcm9maWxlIiwgIiRyZWYiOiAiU2VsZWN0b3JQcm9maWxlIiB9CiAgICAgICAg
ICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAibmFtZSI6ICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJl
ZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBub2RlIGlkIGZv
ciB3aGljaCB0byBnZXQgdGhlIE5hbWVkIEZsb3cgQ29sbGVjdGlvbi4ifQorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibmFtZWRGbG93cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlw
ZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBjb250YWluaW5nIHRoZSBO
YW1lZCBGbG93cyBpbiB0aGUgZG9jdW1lbnQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvd3MgZnJvbSB0
aGUgZG9jdW1lbnQuIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAg
ICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYTU0ZDhjOS4uYjJlYzEwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBA
IC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0
eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0
TmFtZWRGbG93Q29sbGVjdGlvbi5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTc4Nyw2ICs3ODgsMjEgQEAgdm9pZCBJbnNwZWN0
b3JDU1NBZ2VudDo6Z2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyosIFJlZlB0
cjxUeXBlQnVpbGQKICAgICBjc3NQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5yZWxlYXNlKCk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE5hbWVkRmxvd0NvbGxlY3Rpb24oRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFN0cmluZz4gPiYgcmVzdWx0KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZG9tQWdl
bnQtPmFzc2VydERvY3VtZW50KGVycm9yU3RyaW5nLCBub2RlSWQpOworICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVkRmxvd3NWZWN0
b3IgPSBkb2N1bWVudC0+bmFtZWRGbG93cygpLT5uYW1lZEZsb3dzTmFtZXMoKTsKKyAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBuYW1lZEZsb3dzID0gVHlwZUJ1aWxkZXI6
OkFycmF5PFN0cmluZz46OmNyZWF0ZSgpOworCisgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6aXRl
cmF0b3IgaXQgPSBuYW1lZEZsb3dzVmVjdG9yLmJlZ2luKCk7IGl0ICE9IG5hbWVkRmxvd3NWZWN0
b3IuZW5kKCk7ICsraXQpCisgICAgICAgIG5hbWVkRmxvd3MtPmFkZEl0ZW0oKml0KTsKKworICAg
IHJlc3VsdCA9IG5hbWVkRmxvd3MucmVsZWFzZSgpOworfQorCiB2b2lkIEluc3BlY3RvckNTU0Fn
ZW50OjpzdGFydFNlbGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqKQogewogICAgIG1fY3VycmVu
dFNlbGVjdG9yUHJvZmlsZSA9IGFkb3B0UHRyKG5ldyBTZWxlY3RvclByb2ZpbGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDc5MWE3YmYu
LjljZWFmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSdWxl
U2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcnVs
ZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NT
UnVsZT4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJ1bGUoRXJyb3JTdHJpbmcqLCBp
bnQgY29udGV4dE5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPFR5cGVCdWls
ZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxT
dHJpbmc+ID4mIHJlc3VsdCk7CisgICAgdmlydHVhbCB2b2lkIGdldE5hbWVkRmxvd0NvbGxlY3Rp
b24oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0
cmluZz4gPiYgcmVzdWx0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNlbGVjdG9yUHJvZmls
ZXIoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9yUHJvZmlsZXIo
RXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U2VsZWN0b3JQcm9maWxlPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5k
ZXggOTA3OTU4OS4uNjA1ODU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0zNzUsNiArMzc1LDE5IEBAIE5vZGUqIEluc3BlY3RvckRP
TUFnZW50Ojphc3NlcnROb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkK
ICAgICByZXR1cm4gbm9kZTsKIH0KIAorRG9jdW1lbnQqIEluc3BlY3RvckRPTUFnZW50Ojphc3Nl
cnREb2N1bWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQpCit7CisgICAg
Tm9kZSogbm9kZSA9IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghKG5vZGUtPmlzRG9jdW1lbnROb2Rl
KCkpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJEb2N1bWVudCBpcyBub3QgYXZhaWxhYmxl
IjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1
bWVudCo+KG5vZGUpOworfQorCiBFbGVtZW50KiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWxl
bWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQpCiB7CiAgICAgTm9kZSog
bm9kZSA9IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IGIwNWFiNTcuLjQ0NDg5MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0yMDAs
NiArMjAwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzV2hpdGVzcGFjZShOb2RlKik7
CiAKICAgICBOb2RlKiBhc3NlcnROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CisgICAg
RG9jdW1lbnQqIGFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiAKICAg
ICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIG90aGVyIGFnZW50cy4KICAgICBJbnNwZWN0b3JQYWdl
QWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggYWFm
NzkyYS4uNDEwMmQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtMTYwLDYgKzE2MCwyOCBAQCBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBw
YXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9B
cnJheS48c3RyaW5nPil9IHVzZXJDYWxsYmFjaworICAgICAqLworICAgIGdldE5hbWVkRmxvd0Nv
bGxlY3Rpb25Bc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCisgICAgeworICAg
ICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGVjbGFyYXRpb24sID9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbil9IHVzZXJD
YWxsYmFjaworICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKKyAgICAg
ICAgICogQHBhcmFtIHs/QXJyYXkuPHN0cmluZz49fSBuYW1lZEZsb3dQYXlsb2FkCisgICAgICAg
ICAqLworICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIGVycm9yLCBuYW1l
ZEZsb3dQYXlsb2FkKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW5hbWVk
Rmxvd1BheWxvYWQpCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhuYW1lZEZsb3dQYXlsb2Fk
KTsKKyAgICAgICAgfQorCisgICAgICAgIENTU0FnZW50LmdldE5hbWVkRmxvd0NvbGxlY3Rpb24o
bm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOworICAgIH0sCisKKyAg
ICAvKioKICAgICAgKiBAcGFyYW0ge0NTU0FnZW50LkNTU1J1bGVJZH0gcnVsZUlkCiAgICAgICog
QHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBu
ZXdTZWxlY3Rvcgo=
</data>
<flag name="commit-queue"
          id="162441"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153480</attachid>
            <date>2012-07-20 05:07:23 -0700</date>
            <delta_ts>2012-07-20 05:35:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch91607</filename>
            <type>text/plain</type>
            <size>12845</size>
            <attacher name="Andrei Poenaru">andreigpoenaru</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjc4ZjU4Li4xN2Y3ZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDct
MjAgIEFuZHJlaSBQb2VuYXJ1ICA8cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdG9jb2wgRXh0ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBj
b21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTYwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSB0ZXN0IGJ1aWxkcyBhIHdlYnBhZ2Ugd2l0aCAzIE5hbWVkIEZsb3dzIGluIHRoZSBtYWluIGZy
YW1lIGFuZCAxIE5hbWVkIEZsb3cgaW4gYW4gaWZyYW1lLgorICAgICAgICBCZWNhdXNlIHRoZSBn
ZXROYW1lZEZsb3dDb2xsZWN0aW9uIGNvbW1hbmQgaXMgZXhlY3V0ZWQgd2l0aCB0aGUgbWFpbiBk
b2N1bWVudCBub2RlIGlkIGFzIGFuIGFyZ3VtZW50LAorICAgICAgICBpdCBzaG91bGQgcmV0dXJu
IG9ubHkgdGhlIGZpcnN0IDMgTmFtZWQgRmxvd3MuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0NvbGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93
Q29sbGVjdGlvbi1jb21tYW5kLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTE4ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIElt
cGxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGluIFdLVFIgZm9yIEdUSwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xs
ZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MzRiOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhh
dCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQgcmV0dXJucyB0aGUgQ1NTIE5h
bWVkIEZsb3dzIGluIHRoZSBwYWdlLiBCdWcgOTE2MDcKKworZmxvdzEKK2Zsb3cyCitmbG93Mwor
Cis9PT0gQ1NTIE5hbWVkIEZsb3dzID09PQorZmxvdzEKK2Zsb3cyCitmbG93MworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24tY29tbWFuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1hbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZGZlNWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1nZXROYW1lZEZsb3dDb2xsZWN0aW9uLWNvbW1h
bmQuaHRtbApAQCAtMCwwICsxLDc1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGNyZWF0ZUR5bmFtaWNFbGVtZW50cygpCit7CisgICAgdmFyIGZy
YW1lRG9jID0gd2luZG93LmZyYW1lc1swXS5kb2N1bWVudDsKKworICAgIHZhciBlbCA9IGZyYW1l
RG9jLmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTsKKyAgICBlbC5pbm5lclRleHQgPSAiZmxvdzQi
OworICAgIGVsLnN0eWxlLndlYmtpdEZsb3dJbnRvID0gImZsb3c0IjsKKyAgICBmcmFtZURvYy5i
b2R5LmFwcGVuZENoaWxkKGVsKTsKKworICAgIGVsID0gZnJhbWVEb2MuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZWwuc3R5bGUud2Via2l0Rmxvd0Zyb20gPSAiZmxvdzQiOworICAgIGZyYW1l
RG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoImNyZWF0ZUR5bmFtaWNFbGVtZW50cygpIiwgdGVzdFN0ZXApOworCisgICAg
ZnVuY3Rpb24gdGVzdFN0ZXAoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2Fs
bGJhY2sobmFtZWRGbG93cykKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIj09PSBDU1MgTmFtZWQgRmxvd3MgPT09Iik7CisKKyAgICAgICAgICAgIGlmICgh
bmFtZWRGbG93cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBnZXQgTmFtZWQgRmxvd3MiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmFtZWRGbG93cy5zb3J0KCk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChuYW1lZEZsb3dzW2ldKTsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5
bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKKyAgICAgICAgfQorCisgICAgICAg
IFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7
CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPgorVGVzdHMgdGhhdCB0aGUgImdldE5hbWVkRmxvd0NvbGxlY3Rpb24iIGNvbW1hbmQg
cmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGluIHRoZSBwYWdlLgorPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcgOTE2MDc8L2E+Cis8
L3A+CisKKzxhcnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzEiPmZsb3cxPC9h
cnRpY2xlPgorPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZyb206IGZsb3cxIj48L2Rpdj4KKwor
PGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MiI+ZmxvdzI8L2FydGljbGU+
Cis8ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgorCis8YXJ0aWNs
ZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj5mbG93MzwvYXJ0aWNsZT4KKzxkaXYg
c3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+CisKKzxpZnJhbWU+PC9pZnJh
bWU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMmIxYzk3Li5hZjc3ZTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDctMjAgIEFuZHJlaSBQb2VuYXJ1ICA8
cG9lbmFydUBhZG9iZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgRXh0
ZW5zaW9uOiBhZGQgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBjb21tYW5kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYwNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGVkIHRoZSBwcm90b2NvbCB3
aXRoICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiBjb21tYW5kLgorICAgICAgICBUaGlzIGNvbW1h
bmQgcmV0dXJucyB0aGUgQ1NTIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50LgorCisgICAg
ICAgIFRlc3Q6IGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtZ2V0TmFtZWRGbG93Q29sbGVjdGlv
bi1jb21tYW5kLmh0bWwKKworICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb246Om5hbWVk
Rmxvd3NOYW1lcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFt
ZWRGbG93Q29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NB
Z2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckNT
U0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydERvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgor
ICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZS5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmMpOgorCiAyMDEyLTA3LTE4ICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWRE
QjogSURCTGV2ZWxEQkJhY2tpbmdTdG9yZSBjb21waWxhdGlvbiBmYWlscyBiZWNhdXNlIG9mIHVu
dXNlZCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcAppbmRleCBiMGNmZjExLi5jNTBlMDU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCkBAIC00Myw2ICs0MywyMCBA
QCBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uKERv
Y3VtZW50KiBkb2MpCiB7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IFdlYktpdE5hbWVkRmxvd0NvbGxl
Y3Rpb246Om5hbWVkRmxvd3NOYW1lcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gbmFtZWRGbG93
czsKKworICAgIGZvciAoTmFtZWRGbG93U2V0OjppdGVyYXRvciBpdCA9IG1fbmFtZWRGbG93cy5i
ZWdpbigpOyBpdCAhPSBtX25hbWVkRmxvd3MuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCgq
aXQpLT5mbG93U3RhdGUoKSA9PSBXZWJLaXROYW1lZEZsb3c6OkZsb3dTdGF0ZU51bGwpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBuYW1lZEZsb3dzLmFwcGVuZCgoKml0KS0+bmFt
ZSgpLnN0cmluZygpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbmFtZWRGbG93czsKK30KKwogV2Vi
S2l0TmFtZWRGbG93KiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uOjpmbG93QnlOYW1lKGNvbnN0
IFN0cmluZyYgZmxvd05hbWUpCiB7CiAgICAgTmFtZWRGbG93U2V0OjppdGVyYXRvciBpdCA9IG1f
bmFtZWRGbG93cy5maW5kPFN0cmluZywgTmFtZWRGbG93SGFzaFRyYW5zbGF0b3I+KGZsb3dOYW1l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3dDb2xsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oCmlu
ZGV4IDEzMGM2YzguLmQ5NTJlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJL
aXROYW1lZEZsb3dDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5h
bWVkRmxvd0NvbGxlY3Rpb24uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDQsNiArNDUsNyBAQCBjbGFzcyBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbj4gewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24+IGNyZWF0ZShE
b2N1bWVudCogZG9jKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TmFtZWRGbG93Q29sbGVj
dGlvbihkb2MpKTsgfQogCisgICAgVmVjdG9yPFN0cmluZz4gbmFtZWRGbG93c05hbWVzKCk7CiAg
ICAgV2ViS2l0TmFtZWRGbG93KiBmbG93QnlOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIFBhc3NS
ZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBlbnN1cmVGbG93V2l0aE5hbWUoY29uc3QgU3RyaW5nJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBkMTc4ZDlkLi5i
OTNlODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yMjg3
LDYgKzIyODcsMTcgQEAKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJwcm9maWxlIiwgIiRyZWYiOiAiU2VsZWN0b3JQcm9maWxlIiB9
CiAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJnZXROYW1lZEZsb3dDb2xsZWN0aW9uIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2Rl
SWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBu
b2RlIGlkIGZvciB3aGljaCB0byBnZXQgdGhlIE5hbWVkIEZsb3cgQ29sbGVjdGlvbi4ifQorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBjb250YWlu
aW5nIHRoZSBOYW1lZCBGbG93cyBpbiB0aGUgZG9jdW1lbnQuIiB9CisgICAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxv
d3MgZnJvbSB0aGUgZG9jdW1lbnQuIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQog
ICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYTU0ZDhjOS4u
YjJlYzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVk
ZSAiV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTc4Nyw2ICs3ODgsMjEgQEAgdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmlu
ZyosIFJlZlB0cjxUeXBlQnVpbGQKICAgICBjc3NQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5yZWxl
YXNlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE5hbWVkRmxvd0NvbGxlY3Rp
b24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fZG9tQWdlbnQtPmFzc2VydERvY3VtZW50KGVycm9yU3RyaW5nLCBub2RlSWQpOworICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVk
Rmxvd3NWZWN0b3IgPSBkb2N1bWVudC0+bmFtZWRGbG93cygpLT5uYW1lZEZsb3dzTmFtZXMoKTsK
KyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBuYW1lZEZsb3dzID0gVHlw
ZUJ1aWxkZXI6OkFycmF5PFN0cmluZz46OmNyZWF0ZSgpOworCisgICAgZm9yIChWZWN0b3I8U3Ry
aW5nPjo6aXRlcmF0b3IgaXQgPSBuYW1lZEZsb3dzVmVjdG9yLmJlZ2luKCk7IGl0ICE9IG5hbWVk
Rmxvd3NWZWN0b3IuZW5kKCk7ICsraXQpCisgICAgICAgIG5hbWVkRmxvd3MtPmFkZEl0ZW0oKml0
KTsKKworICAgIHJlc3VsdCA9IG5hbWVkRmxvd3MucmVsZWFzZSgpOworfQorCiB2b2lkIEluc3Bl
Y3RvckNTU0FnZW50OjpzdGFydFNlbGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqKQogewogICAg
IG1fY3VycmVudFNlbGVjdG9yUHJvZmlsZSA9IGFkb3B0UHRyKG5ldyBTZWxlY3RvclByb2ZpbGUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4
IDc5MWE3YmYuLjljZWFmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZFJ1bGUoRXJyb3JT
dHJpbmcqLCBpbnQgY29udGV4dE5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwogICAgIHZpcnR1YWwgdm9pZCBn
ZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxTdHJpbmc+ID4mIHJlc3VsdCk7CisgICAgdmlydHVhbCB2b2lkIGdldE5hbWVkRmxv
d0NvbGxlY3Rpb24oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFN0cmluZz4gPiYgcmVzdWx0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNlbGVj
dG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9y
UHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U2VsZWN0b3JQ
cm9maWxlPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKaW5kZXggOTA3OTU4OS4uNjA1ODU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0zNzUsNiArMzc1LDE5IEBAIE5vZGUqIElu
c3BlY3RvckRPTUFnZW50Ojphc3NlcnROb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50
IG5vZGVJZCkKICAgICByZXR1cm4gbm9kZTsKIH0KIAorRG9jdW1lbnQqIEluc3BlY3RvckRPTUFn
ZW50Ojphc3NlcnREb2N1bWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQp
Cit7CisgICAgTm9kZSogbm9kZSA9IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghKG5vZGUtPmlzRG9j
dW1lbnROb2RlKCkpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJEb2N1bWVudCBpcyBub3Qg
YXZhaWxhYmxlIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxEb2N1bWVudCo+KG5vZGUpOworfQorCiBFbGVtZW50KiBJbnNwZWN0b3JET01BZ2VudDo6
YXNzZXJ0RWxlbWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQpCiB7CiAg
ICAgTm9kZSogbm9kZSA9IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IGIwNWFiNTcuLjQ0
NDg5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5o
CkBAIC0yMDAsNiArMjAwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzV2hpdGVzcGFj
ZShOb2RlKik7CiAKICAgICBOb2RlKiBhc3NlcnROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJ
ZCk7CisgICAgRG9jdW1lbnQqIGFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nKiwgaW50IG5vZGVJ
ZCk7CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIG90aGVyIGFnZW50cy4KICAgICBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMK
aW5kZXggYWFmNzkyYS4uNDEwMmQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtMTYwLDYgKzE2MCwyOCBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKD9BcnJheS48c3RyaW5nPil9IHVzZXJDYWxsYmFjaworICAgICAqLworICAgIGdldE5h
bWVkRmxvd0NvbGxlY3Rpb25Bc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCisg
ICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb24sID9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
bil9IHVzZXJDYWxsYmFjaworICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJy
b3IKKyAgICAgICAgICogQHBhcmFtIHs/QXJyYXkuPHN0cmluZz49fSBuYW1lZEZsb3dQYXlsb2Fk
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIGVy
cm9yLCBuYW1lZEZsb3dQYXlsb2FkKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3Ig
fHwgIW5hbWVkRmxvd1BheWxvYWQpCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhuYW1lZEZs
b3dQYXlsb2FkKTsKKyAgICAgICAgfQorCisgICAgICAgIENTU0FnZW50LmdldE5hbWVkRmxvd0Nv
bGxlY3Rpb24obm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOworICAg
IH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge0NTU0FnZW50LkNTU1J1bGVJZH0gcnVsZUlk
CiAgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAogICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBuZXdTZWxlY3Rvcgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>