<?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>139581</bug_id>
          
          <creation_ts>2014-12-12 03:04:36 -0800</creation_ts>
          <short_desc>AX: [ATK] Use ATK_RELATION_MEMBER_OF to implement linkedUIElements for radio button group members.</short_desc>
          <delta_ts>2017-03-11 10:48:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrzej Badowski">a.badowski</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>jdiggs</cc>
    
    <cc>k.czech</cc>
    
    <cc>mario</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1054803</commentid>
    <comment_count>0</comment_count>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-12 03:04:36 -0800</bug_when>
    <thetext>I would like to be discussed the use of the ATK_RELATION_MEMBER_OF in order to expose relationship AccessibilityRenderObject::linkedUIElements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055422</commentid>
    <comment_count>1</comment_count>
      <attachid>243255</attachid>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-13 04:50:34 -0800</bug_when>
    <thetext>Created attachment 243255
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055578</commentid>
    <comment_count>2</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2014-12-15 01:19:39 -0800</bug_when>
    <thetext>It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of radio buttons because those radio buttons are all a member of a group. However, I question (quite a bit) its applicability for an internal anchor connection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055952</commentid>
    <comment_count>3</comment_count>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-16 01:01:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of
&gt; radio buttons because those radio buttons are all a member of a group.
&gt; However, I question (quite a bit) its applicability for an internal anchor
&gt; connection.

Thank you for your feedback. I understand your concerns about internal anchor link, I had it as well. but: 
1. There is no other relationship ATK more appropriate to do so. 
2. The linkedUIElements treats both objects together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056027</commentid>
    <comment_count>4</comment_count>
      <attachid>243255</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-12-16 11:38:25 -0800</bug_when>
    <thetext>Comment on attachment 243255
proposed patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1046
&gt; +    return roleValue() == RadioButtonRole || (isLink() &amp;&amp; internalLinkElement());

how come isLink gets this attribute?
i don&apos;t think there are any tests which test the isLink part</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056074</commentid>
    <comment_count>5</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2014-12-16 13:21:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of
&gt; &gt; radio buttons because those radio buttons are all a member of a group.
&gt; &gt; However, I question (quite a bit) its applicability for an internal anchor
&gt; &gt; connection.
&gt; 
&gt; Thank you for your feedback. I understand your concerns about internal
&gt; anchor link, I had it as well. but: 
&gt; 1. There is no other relationship ATK more appropriate to do so. 

Assuming there is a use case for that, then the correct solution would be to file a bug against ATK requesting a new AtkRelation type; not to lump non-members together with members. 

&gt; 2. The linkedUIElements treats both objects together.

Just because a particular toolkit or engine does something does not make it appropriate for all platforms.

Taking the above into account, for GTK please do NOT include internal anchors in the member-of AtkRelation type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056075</commentid>
    <comment_count>6</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2014-12-16 13:21:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of
&gt; &gt; radio buttons because those radio buttons are all a member of a group.
&gt; &gt; However, I question (quite a bit) its applicability for an internal anchor
&gt; &gt; connection.
&gt; 
&gt; Thank you for your feedback. I understand your concerns about internal
&gt; anchor link, I had it as well. but: 
&gt; 1. There is no other relationship ATK more appropriate to do so. 

Assuming there is a use case for that, then the correct solution would be to file a bug against ATK requesting a new AtkRelation type; not to lump non-members together with members. 

&gt; 2. The linkedUIElements treats both objects together.

Just because a particular toolkit or engine does something does not make it appropriate for all platforms.

Taking the above into account, for GTK please do NOT include internal anchors in the member-of AtkRelation type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056308</commentid>
    <comment_count>7</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2014-12-17 04:27:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of
&gt; &gt; radio buttons because those radio buttons are all a member of a group.
&gt; &gt; However, I question (quite a bit) its applicability for an internal anchor
&gt; &gt; connection.
&gt; 
&gt; Thank you for your feedback. I understand your concerns about internal
&gt; anchor link, I had it as well. but: 
&gt; 1. There is no other relationship ATK more appropriate to do so. 

First, as Joanmarie said, if you think that an appropiate relationship is missing, then the way to go is asking for a new ATK relation. Relationships has meaning, that different ATs use in order to know how to present information to the users. ATK_RELATION_MEMBER has a meaning, and it is not to include anchors.

Second, I really don&apos;t think that a relationship is needed here. Relations, at least in ATK, are used to relate two (or more) different objects, because is a convenient way to get one based on the other. But for the case of links/anchors, that is not needed because ATK API for links already contemplate this:

https://developer.gnome.org/atk/unstable/AtkHyperlink.html#atk-hyperlink-get-object

So you can already get the anchors from an Hypertext document without a relationship.

&gt; 2. The linkedUIElements treats both objects together.

I know that one of the objectives of the test is also detecting things that are still not implemented on the ports, but in this case, seems that is more like that the current test infrastructure is forcing a specific accessibility implementation, that is not one of the objectives. As I said, ATK hyperlink/hypertext API already provides to ATs the way to get the individual anchors, without the need of adding a relationship. Adding the relationship sounds like adding something that ATs doesn&apos;t need, so it is just complicating the implementation (imho).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056314</commentid>
    <comment_count>8</comment_count>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-17 05:59:03 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; It looks to me like ATK_RELATION_MEMBER_OF is applicable for a group of
&gt; &gt; &gt; radio buttons because those radio buttons are all a member of a group.
&gt; &gt; &gt; However, I question (quite a bit) its applicability for an internal anchor
&gt; &gt; &gt; connection.
&gt; &gt; 
&gt; &gt; Thank you for your feedback. I understand your concerns about internal
&gt; &gt; anchor link, I had it as well. but: 
&gt; &gt; 1. There is no other relationship ATK more appropriate to do so. 
&gt; 
&gt; First, as Joanmarie said, if you think that an appropiate relationship is
&gt; missing, then the way to go is asking for a new ATK relation. Relationships
&gt; has meaning, that different ATs use in order to know how to present
&gt; information to the users. ATK_RELATION_MEMBER has a meaning, and it is not
&gt; to include anchors.
&gt; 
&gt; Second, I really don&apos;t think that a relationship is needed here. Relations,
&gt; at least in ATK, are used to relate two (or more) different objects, because
&gt; is a convenient way to get one based on the other. But for the case of
&gt; links/anchors, that is not needed because ATK API for links already
&gt; contemplate this:
&gt; 
&gt; https://developer.gnome.org/atk/unstable/AtkHyperlink.html#atk-hyperlink-get-
&gt; object
&gt; 
&gt; So you can already get the anchors from an Hypertext document without a
&gt; relationship.
&gt; 
&gt; &gt; 2. The linkedUIElements treats both objects together.
&gt; 
&gt; I know that one of the objectives of the test is also detecting things that
&gt; are still not implemented on the ports, but in this case, seems that is more
&gt; like that the current test infrastructure is forcing a specific
&gt; accessibility implementation, that is not one of the objectives. As I said,
&gt; ATK hyperlink/hypertext API already provides to ATs the way to get the
&gt; individual anchors, without the need of adding a relationship. Adding the
&gt; relationship sounds like adding something that ATs doesn&apos;t need, so it is
&gt; just complicating the implementation (imho).
Thank you for checking and tips on how to solve the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056315</commentid>
    <comment_count>9</comment_count>
      <attachid>243255</attachid>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-17 06:00:16 -0800</bug_when>
    <thetext>Comment on attachment 243255
proposed patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1046
&gt;&gt; +    return roleValue() == RadioButtonRole || (isLink() &amp;&amp; internalLinkElement());
&gt; 
&gt; how come isLink gets this attribute?
&gt; i don&apos;t think there are any tests which test the isLink part

You&apos;re right. I should prepare a suitable test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056421</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-17 11:22:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/19281517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058083</commentid>
    <comment_count>11</comment_count>
      <attachid>243792</attachid>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-29 04:17:50 -0800</bug_when>
    <thetext>Created attachment 243792
proposed patch 2

This patch takes into account negative positions of debaters as to the ATK_RELATION_MEMBER_OF applicability for the internal link.
In the current version ATK_RELATION_MEMBER_OF is restricted to the radio button group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058087</commentid>
    <comment_count>12</comment_count>
      <attachid>243794</attachid>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-29 05:46:23 -0800</bug_when>
    <thetext>Created attachment 243794
proposed patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058172</commentid>
    <comment_count>13</comment_count>
      <attachid>243819</attachid>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2014-12-30 02:02:25 -0800</bug_when>
    <thetext>Created attachment 243819
proposed patch 2

attaching another patch 2 due to  efl-WK2 build errors not associated with the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060100</commentid>
    <comment_count>14</comment_count>
    <who name="Andrzej Badowski">a.badowski</who>
    <bug_when>2015-01-09 01:40:01 -0800</bug_when>
    <thetext>The function mentioned by Alejandro (atk-hyperlink-get-object) returns an object that is a visual representation of internal link (text or picture) rather than the object pointed to by the link. Hence, I would like to temporarily suspend this type of relationship and reduce the patch to a group of radiobuttons.
Getting to the object pointed to by the link requires several steps and I&apos;m going to deal with this in the future.
What do you think about this, Joanie ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220867</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-08-17 08:59:39 -0700</bug_when>
    <thetext>this patch is almost two years old. I don&apos;t know why its languished so long, but marking as r- so it can at least be re-based</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243255</attachid>
            <date>2014-12-13 04:50:34 -0800</date>
            <delta_ts>2014-12-29 04:17:50 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>diff_139581_patch1org.txt</filename>
            <type>text/plain</type>
            <size>12010</size>
            <attacher name="Andrzej Badowski">a.badowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YjlhNTA2Li5iZTk3ZTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTIt
MTMgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2Vk
VUlFbGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNoYXJpbmcgYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy5odG1s
IHdpdGggb3RoZXIgcG9ydHMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRv
bi1ncm91cC1tZW1iZXJzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNC0xMi0xMiAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIFRleHR1cmUg
c2l6ZSB0ZXN0cyBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBl
Y3RlZC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVj
dGVkLnR4dApyZW5hbWUgdG8gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24t
Z3JvdXAtbWVtYmVycy1leHBlY3RlZC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMWExZWRiNC4uZDcyMWNjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2MzEsNyArMTYzMSw2IEBAIHdlYmtpdC5vcmcv
Yi8xMTcxODIgYWNjZXNzaWJpbGl0eS90ZXh0LXJvbGUtd2l0aC1hcmlhLWhpZGRlbi1pbnNpZGUu
aHRtbCBbIEZhaWx1CiAKIHdlYmtpdC5vcmcvYi8xMTg0MTggYWNjZXNzaWJpbGl0eS9pbWctZmFs
bHNiYWNrLXRvLXRpdGxlLmh0bWwgWyBNaXNzaW5nIF0KIHdlYmtpdC5vcmcvYi85ODM0OCAgYWNj
ZXNzaWJpbGl0eS9pbnRlcm5hbC1saW5rLWFuY2hvcnMyLmh0bWwgWyBNaXNzaW5nIF0KLXdlYmtp
dC5vcmcvYi85ODM0OCAgYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy5o
dG1sIFsgTWlzc2luZyBdCiAKIGFjY2Vzc2liaWxpdHkvbmVnYXRpdmUtdGFiaW5kZXgtZG9lcy1u
b3QtZXhwb3NlLWxhYmVsLmh0bWwgWyBNaXNzaW5nIF0KIApAQCAtMjEzMCw0ICsyMTI5LDQgQEAg
d2Via2l0Lm9yZy9iLzEzNjQwNiBjb21wb3NpdGluZy92aXNpYmlsaXR5L3Zpc2liaWxpdHktaW1h
Z2UtbGF5ZXJzLWR5bmFtaWMuaHRtbAogd2Via2l0Lm9yZy9iLzEzNjQwNiBjb21wb3NpdGluZy92
aXNpYmlsaXR5L3Zpc2liaWxpdHktc2ltcGxlLXZpZGVvLWxheWVyLmh0bWwgWyBGYWlsdXJlIF0K
IAogIyBUaGlzIHRlc3QgbmVlZCBhIHJlYmFzZWxpbmUuCi13ZWJraXQub3JnL2IvMTM5MTUwIGZh
c3QvZm9ybXMvZm9ybS1oaWRlcy10YWJsZS5odG1sIFsgRmFpbHVyZSBdClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzEzOTE1MCBmYXN0L2Zvcm1zL2Zvcm0taGlkZXMt
dGFibGUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBlYmRkYjlkLi42MDJkYTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzksNyArNzksNiBAQCBCdWcoR1RLKSBmYXN0L2RvbS9X
aW5kb3cvc2xvdy11bmxvYWQtaGFuZGxlci1vbmx5LWZyYW1lLWlzLXN0b3BwZWQuaHRtbCBbIFdv
bnRGaQogIyB3cml0dGVuIGluIGEgcGxhdGZvcm0tc3BlY2lmaWMgd2F5LiBUaGV5IHNob3VsZCBl
aXRoZXIgYmUgbW92ZWQgdG8KICMgdGhlIHJpZ2h0IHBsYXRmb3JtIG9yIHJlLXdyaXR0ZW4gaW4g
YSBtb3JlIHBsYXRmb3JtLWFnbm9zdGljIHdheS4KIHdlYmtpdC5vcmcvYi85ODM0OCBhY2Nlc3Np
YmlsaXR5L2ludGVybmFsLWxpbmstYW5jaG9yczIuaHRtbCBbIFdvbnRGaXggTWlzc2luZyBdCi13
ZWJraXQub3JnL2IvOTgzNDggYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVy
cy5odG1sIFsgV29udEZpeCBNaXNzaW5nIF0KIAogIyBGZWF0dXJlIGRpc2FibGVkLCBzZWU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQyNQogd2Via2l0Lm9yZy9i
Lzk4OTI1IGZhc3Qvdmlld3BvcnQvdmlld3BvcnQtbGVnYWN5LWhhbmRoZWxkZnJpZW5kbHkuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEyZDkwNjUuLjM2NmI4MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxNC0xMi0xMyAgQW5kcnplaiBCYWRvd3NraSAgPGEuYmFkb3dza2lA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgQVg6IFtBVEtdIFVzZSBBVEtfUkVMQVRJT05fTUVNQkVS
X09GIHRvIGltcGxlbWVudCBsaW5rZWRVSUVsZW1lbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVzZSBvZiB0aGUgQVRLX1JFTEFUSU9OX01F
TUJFUl9PRiBpbiBvcmRlciB0byBleHBvc2UgcmVsYXRpb25zaGlwIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmxpbmtlZFVJRWxlbWVudHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaGFy
aW5nIHJhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgd2l0aCBvdGhlciBwb3J0cy4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNMaW5r
ZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKKyAgICAgICAgQXNzaWducyByZWxhdGlvbnNoaXAgQVRLX1JFTEFUSU9OX01F
TUJFUl9PRiBmb3IgcmFkaW9idXR0b24gYW5kIGludGVybmFsIGxpbmsuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAo
c2V0QXRrUmVsYXRpb25TZXRGb3JHcm91cCk6CisgICAgICAgIFNlcGFyYXRpb24gb2YgcmVwZWF0
ZWQgY29kZSBmcm9tIHNldEF0a1JlbGF0aW9uU2V0RnJvbUNvcmVPYmplY3QuCisgICAgICAgIChz
ZXRBdGtSZWxhdGlvblNldEZyb21Db3JlT2JqZWN0KToKKyAgICAgICAgQWRkaW5nIHJlbGF0aW9u
c2hpcCBBVEtfUkVMQVRJT05fTUVNQkVSX09GLgorCiAyMDE0LTEyLTEyICBNYXJrIFJvd2UgIDxt
cm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gV29yayBhcm91bmQgYSBidWcgaW4gZHN5
bXV0aWwgb24gb2xkZXIgT1MgdmVyc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggYTYzZTAzOS4uNDdmZDY4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTU5MCw2ICs1OTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFyaWFEZXNj
cmliZWRCeUVsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IHsgfQog
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFyaWFDb250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xp
bmtlZFVJRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBhcmlhSGFzUG9wdXAoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBhcmlhUHJlc3NlZElzUHJlc2VudCgpIGNvbnN0OwogICAgIGJvb2wgYXJpYUlzTXVsdGlsaW5l
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA4NGQ4Y2NjLi4yNjZlZWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTEwNDEsNiArMTA0MSwxMSBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFyaWFDb250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvcgogICAgIGFyaWFFbGVtZW50c0Zyb21BdHRyaWJ1dGUoYXJpYUNvbnRyb2xzLCBhcmlh
X2NvbnRyb2xzQXR0cik7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3Vw
cG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcm9sZVZhbHVlKCkg
PT0gUmFkaW9CdXR0b25Sb2xlIHx8IChpc0xpbmsoKSAmJiBpbnRlcm5hbExpbmtFbGVtZW50KCkp
OworfQorCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQURyb3Bw
aW5nKCkgY29uc3QgCiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBkcm9wRWZmZWN0ID0gZ2V0
QXR0cmlidXRlKGFyaWFfZHJvcGVmZmVjdEF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA2YTNj
MWViLi5kYzRlNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMTgwLDYgKzE4MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMoQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzQVJJQUNvbnRyb2xzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFyaWFD
b250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpbmtlZFVJRWxlbWVudHMoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCAxNWIxODE0Li4yODgwYjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCkBAIC0xOTgsNiArMTk4LDIyIEBAIHN0YXRp
YyB2b2lkIHJlbW92ZUF0a1JlbGF0aW9uQnlUeXBlKEF0a1JlbGF0aW9uU2V0KiByZWxhdGlvblNl
dCwgQXRrUmVsYXRpb25UeXBlCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBzZXRBdGtSZWxhdGlv
blNldEZvckdyb3VwKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEF0a1JlbGF0aW9u
U2V0KiByZWxhdGlvblNldCwgQXRrUmVsYXRpb25UeXBlIHJlbGF0aW9uKQoreworICAgIHJlbW92
ZUF0a1JlbGF0aW9uQnlUeXBlKHJlbGF0aW9uU2V0LCByZWxhdGlvbik7CisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGVsZW1lbnRzOworICAgIGlm
IChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fRkxPV1NfVE8pCisgICAgICAgIGNvcmVPYmplY3Qt
PmFyaWFGbG93VG9FbGVtZW50cyhlbGVtZW50cyk7CisgICAgZWxzZSBpZiAocmVsYXRpb24gPT0g
QVRLX1JFTEFUSU9OX0RFU0NSSUJFRF9CWSkKKyAgICAgICAgY29yZU9iamVjdC0+YXJpYURlc2Ny
aWJlZEJ5RWxlbWVudHMoZWxlbWVudHMpOworICAgIGVsc2UgaWYgKHJlbGF0aW9uID09IEFUS19S
RUxBVElPTl9DT05UUk9MTEVSX0ZPUikKKyAgICAgICAgY29yZU9iamVjdC0+YXJpYUNvbnRyb2xz
RWxlbWVudHMoZWxlbWVudHMpOworICAgIGVsc2UgaWYgKHJlbGF0aW9uID09IEFUS19SRUxBVElP
Tl9NRU1CRVJfT0YpCisgICAgICAgIGNvcmVPYmplY3QtPmxpbmtlZFVJRWxlbWVudHMoZWxlbWVu
dHMpOworICAgIGZvciAoY29uc3QgYXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGVsZW1lbnRz
KQorICAgICAgICBhdGtfcmVsYXRpb25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9u
U2V0LCByZWxhdGlvbiwgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBlcigpKTsKK30KKwogc3Rh
dGljIHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBjb3JlT2JqZWN0LCBBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQpCiB7CiAgICAgaWYg
KGNvcmVPYmplY3QtPmlzRmllbGRzZXQoKSkgewpAQCAtMjMyLDMxICsyNDgsMjEgQEAgc3RhdGlj
IHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBjb3JlT2JqZWN0LCBBdGsKICAgICB9CiAKICAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBz
dXBwb3J0cyBhcmlhLWZsb3d0bwotICAgIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFGbG93
VG8oKSkgewotICAgICAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlwZShyZWxhdGlvblNldCwgQVRL
X1JFTEFUSU9OX0ZMT1dTX1RPKTsKLSAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFyaWFGbG93VG9FbGVtZW50czsKLSAgICAgICAgY29yZU9i
amVjdC0+YXJpYUZsb3dUb0VsZW1lbnRzKGFyaWFGbG93VG9FbGVtZW50cyk7Ci0gICAgICAgIGZv
ciAoY29uc3QgYXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFGbG93VG9FbGVtZW50cykK
LSAgICAgICAgICAgIGF0a19yZWxhdGlvbl9zZXRfYWRkX3JlbGF0aW9uX2J5X3R5cGUocmVsYXRp
b25TZXQsIEFUS19SRUxBVElPTl9GTE9XU19UTywgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBl
cigpKTsKLSAgICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUZsb3dUbygpKQor
ICAgICAgICBzZXRBdGtSZWxhdGlvblNldEZvckdyb3VwKGNvcmVPYmplY3QsIHJlbGF0aW9uU2V0
LCBBVEtfUkVMQVRJT05fRkxPV1NfVE8pOwogCiAgICAgLy8gQ2hlY2sgd2hldGhlciBvYmplY3Qg
c3VwcG9ydHMgYXJpYS1kZXNjcmliZWRieS4gSXQgcHJvdmlkZXMgYW4gYWRkaXRpb25hbCBpbmZv
cm1hdGlvbiBmb3IgdGhlIHVzZXIuCi0gICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQURl
c2NyaWJlZEJ5KCkpIHsKLSAgICAgICAgcmVtb3ZlQXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25T
ZXQsIEFUS19SRUxBVElPTl9ERVNDUklCRURfQlkpOwotICAgICAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHM7
Ci0gICAgICAgIGNvcmVPYmplY3QtPmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKGFyaWFEZXNjcmli
ZWRCeUVsZW1lbnRzKTsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBhY2Nlc3NpYmlsaXR5T2Jq
ZWN0IDogYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMpCi0gICAgICAgICAgICBhdGtfcmVsYXRpb25f
c2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fREVTQ1JJ
QkVEX0JZLCBhY2Nlc3NpYmlsaXR5T2JqZWN0LT53cmFwcGVyKCkpOwotICAgIH0KKyAgICBpZiAo
Y29yZU9iamVjdC0+c3VwcG9ydHNBUklBRGVzY3JpYmVkQnkoKSkKKyAgICAgICAgc2V0QXRrUmVs
YXRpb25TZXRGb3JHcm91cChjb3JlT2JqZWN0LCByZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0RF
U0NSSUJFRF9CWSk7CiAKICAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBzdXBwb3J0cyBhcmlh
LWNvbnRyb2xzLiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBlbGVtZW50cyB0aGF0IGFy
ZSBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IG9iamVjdC4KLSAgICBpZiAoY29yZU9iamVjdC0+
c3VwcG9ydHNBUklBQ29udHJvbHMoKSkgewotICAgICAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlw
ZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SKTsKLSAgICAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFyaWFDb250cm9s
czsKLSAgICAgICAgY29yZU9iamVjdC0+YXJpYUNvbnRyb2xzRWxlbWVudHMoYXJpYUNvbnRyb2xz
KTsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBhY2Nlc3NpYmlsaXR5T2JqZWN0IDogYXJpYUNv
bnRyb2xzKQotICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlw
ZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SLCBhY2Nlc3NpYmlsaXR5
T2JqZWN0LT53cmFwcGVyKCkpOwotICAgIH0KKyAgICBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNB
UklBQ29udHJvbHMoKSkKKyAgICAgICAgc2V0QXRrUmVsYXRpb25TZXRGb3JHcm91cChjb3JlT2Jq
ZWN0LCByZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SKTsKKworICAgIC8v
IENoZWNrIHdoZXRoZXIgb2JqZWN0IHN1cHBvcnRzIGxpbmtlZFVJRWxlbWVudHMuIEl0IHByb3Zp
ZGVzIGluZm9ybWF0aW9uIGFib3V0IGVsZW1lbnRzCisgICAgLy8gdGhhdCBiZWxvbmcgdG8gdGhl
IHNhbWUgZ3JvdXAgd2hpY2ggaXMgY2hlY2tlZCB1c2luZyBsaW5rZWRVSUVsZW1lbnRzIG1ldGhv
ZC4KKyAgICBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkpCisgICAg
ICAgIHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9iamVjdCwgcmVsYXRpb25TZXQsIEFU
S19SRUxBVElPTl9NRU1CRVJfT0YpOwogfQogCiBzdGF0aWMgZ3BvaW50ZXIgd2Via2l0QWNjZXNz
aWJsZVBhcmVudENsYXNzID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAyMGM5ZjZiLi4yOWIzNmQyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMTItMTMg
IEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFY
OiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2VkVUlF
bGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzOTU4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudGluZyBBVEsgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50
QXRJbmRleC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRr
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KToKKwogMjAxNC0xMi0xMyAgR3J6
ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXSBNaW5pQnJvd3NlcidzIHdpbmRvd19jcmVhdGUgbWF5IHJldHVybiBOVUxMCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDA5YTk5MWIuLjM2ZDlk
NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRr
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC03
NjIsOCArNzYyLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
YWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KEF0a09iamVjdCoKIAogUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4
KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiwgaW5kZXgpOwogfQogCiBQ
YXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243792</attachid>
            <date>2014-12-29 04:17:50 -0800</date>
            <delta_ts>2014-12-29 05:46:39 -0800</delta_ts>
            <desc>proposed patch 2</desc>
            <filename>diff_139581_patch2_org.txt</filename>
            <type>text/plain</type>
            <size>12211</size>
            <attacher name="Andrzej Badowski">a.badowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDNhYzM1Li4yN2QyOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTIt
MjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2Vk
VUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyaW5nIGFjY2Vzc2liaWxpdHkv
cmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbCB3aXRoIG90aGVyIHBvcnRzLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9y
YWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTQtMTItMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb24tcmVtb3ZlZC1kdXJpbmct
YW5pbWF0aW9uLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMt
ZXhwZWN0ZWQudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1l
eHBlY3RlZC50eHQKcmVuYW1lIHRvIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0
dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDExMWE0YTYuLjMzZGI4MDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjI5LDcgKzE2MjksNiBAQCB3ZWJraXQu
b3JnL2IvMTE3MTgyIGFjY2Vzc2liaWxpdHkvdGV4dC1yb2xlLXdpdGgtYXJpYS1oaWRkZW4taW5z
aWRlLmh0bWwgWyBGYWlsdQogCiB3ZWJraXQub3JnL2IvMTE4NDE4IGFjY2Vzc2liaWxpdHkvaW1n
LWZhbGxzYmFjay10by10aXRsZS5odG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvOTgzNDgg
IGFjY2Vzc2liaWxpdHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1sIFsgTWlzc2luZyBdCi13
ZWJraXQub3JnL2IvOTgzNDggIGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJl
cnMuaHRtbCBbIE1pc3NpbmcgXQogCiBhY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRv
ZXMtbm90LWV4cG9zZS1sYWJlbC5odG1sIFsgTWlzc2luZyBdCiAKQEAgLTIxMjgsNCArMjEyNyw0
IEBAIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRpbmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5
LWltYWdlLWxheWVycy1keW5hbWljLmh0bWwKIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRp
bmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5LXNpbXBsZS12aWRlby1sYXllci5odG1sIFsgRmFpbHVy
ZSBdCiAKICMgVGhpcyB0ZXN0IG5lZWQgYSByZWJhc2VsaW5lLgotd2Via2l0Lm9yZy9iLzEzOTE1
MCBmYXN0L2Zvcm1zL2Zvcm0taGlkZXMtdGFibGUuaHRtbCBbIEZhaWx1cmUgXQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8xMzkxNTAgZmFzdC9mb3Jtcy9mb3JtLWhp
ZGVzLXRhYmxlLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMzU3MjVmNC4uMmY4ZmRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5LDcgKzc5LDYgQEAgQnVnKEdUSykgZmFzdC9k
b20vV2luZG93L3Nsb3ctdW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9wcGVkLmh0bWwg
WyBXb250RmkKICMgd3JpdHRlbiBpbiBhIHBsYXRmb3JtLXNwZWNpZmljIHdheS4gVGhleSBzaG91
bGQgZWl0aGVyIGJlIG1vdmVkIHRvCiAjIHRoZSByaWdodCBwbGF0Zm9ybSBvciByZS13cml0dGVu
IGluIGEgbW9yZSBwbGF0Zm9ybS1hZ25vc3RpYyB3YXkuCiB3ZWJraXQub3JnL2IvOTgzNDggYWNj
ZXNzaWJpbGl0eS9pbnRlcm5hbC1saW5rLWFuY2hvcnMyLmh0bWwgWyBXb250Rml4IE1pc3Npbmcg
XQotd2Via2l0Lm9yZy9iLzk4MzQ4IGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1l
bWJlcnMuaHRtbCBbIFdvbnRGaXggTWlzc2luZyBdCiAKICMgRmVhdHVyZSBkaXNhYmxlZCwgc2Vl
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0MjUKIHdlYmtpdC5v
cmcvYi85ODkyNSBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LWxlZ2FjeS1oYW5kaGVsZGZyaWVuZGx5
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTE4YzdjLi5kNzM5YzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQtMTItMjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93
c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01F
TUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdy
b3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzk1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgdXNlIG9mIHRoZSBBVEtfUkVMQVRJT05fTUVNQkVSX09GIGluIG9yZGVyIHRvIGV4
cG9zZSByZWxhdGlvbnNoaXAKKyAgICAgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGlu
a2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBzaGFyaW5nIHJhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgd2l0
aCBvdGhlciBwb3J0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNM
aW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgQXNzaWducyByZWxhdGlvbnNo
aXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiBmb3IgcmFkaW8gYnV0dG9uLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAg
KHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXApOgorICAgICAgICBTZXBhcmF0aW9uIG9mIHJlcGVh
dGVkIGNvZGUgZnJvbSBzZXRBdGtSZWxhdGlvblNldEZyb21Db3JlT2JqZWN0LgorICAgICAgICAo
c2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdCk6CisgICAgICAgIEFkZGluZyByZWxhdGlv
bnNoaXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRi4KKwogMjAxNC0xMi0yOCAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZGl0
aW9uYWwgYnVpbGQgZml4IG9uIHdpbiBwb3J0IHNpbmNlIHIxNzc3ODYuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDA0Y2E0
OGIuLjczYTg0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01OTIsNiArNTkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBQ29udHJvbHMoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVt
ZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJc1ByZXNlbnQoKSBjb25zdDsKICAgICBib29s
IGFyaWFJc011bHRpbGluZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggN2NhZTdm
OS4uNTIwN2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDQxLDYgKzEwNDEsMTEgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IKICAgICBhcmlhRWxlbWVudHNGcm9tQXR0cmlidXRlKGFy
aWFDb250cm9scywgYXJpYV9jb250cm9sc0F0dHIpOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsKK30KKwogYm9vbCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IAogewogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZHJvcEVmZmVjdCA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZl
Y3RBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggZTk1ODJmYi4uNjk1NGQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgKQEAgLTE4MCw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFy
aWFEZXNjcmliZWRCeUVsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFDb250cm9scygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGFyaWFIYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAKaW5kZXggMjY3MTY5YS4uNjc1ZTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmNwcApAQCAtMTk4LDYgKzE5OCwyMiBAQCBzdGF0aWMgdm9pZCByZW1vdmVBdGtSZWxhdGlv
bkJ5VHlwZShBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1JlbGF0aW9uVHlwZQogICAg
IH0KIH0KIAorc3RhdGljIHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGb3JHcm91cChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1Jl
bGF0aW9uVHlwZSByZWxhdGlvbikKK3sKKyAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlwZShyZWxh
dGlvblNldCwgcmVsYXRpb24pOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBlbGVtZW50czsKKyAgICBpZiAocmVsYXRpb24gPT0gQVRLX1JFTEFU
SU9OX0ZMT1dTX1RPKQorICAgICAgICBjb3JlT2JqZWN0LT5hcmlhRmxvd1RvRWxlbWVudHMoZWxl
bWVudHMpOworICAgIGVsc2UgaWYgKHJlbGF0aW9uID09IEFUS19SRUxBVElPTl9ERVNDUklCRURf
QlkpCisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKGVsZW1lbnRz
KTsKKyAgICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9GT1Ip
CisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFDb250cm9sc0VsZW1lbnRzKGVsZW1lbnRzKTsKKyAg
ICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fTUVNQkVSX09GKQorICAgICAgICBj
b3JlT2JqZWN0LT5saW5rZWRVSUVsZW1lbnRzKGVsZW1lbnRzKTsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGFjY2Vzc2liaWxpdHlPYmplY3QgOiBlbGVtZW50cykKKyAgICAgICAgYXRrX3JlbGF0aW9u
X3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgcmVsYXRpb24sIGFjY2Vzc2li
aWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9u
U2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrUmVs
YXRpb25TZXQqIHJlbGF0aW9uU2V0KQogewogICAgIGlmIChjb3JlT2JqZWN0LT5pc0ZpZWxkc2V0
KCkpIHsKQEAgLTIzMiwzMSArMjQ4LDIxIEBAIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0
RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrCiAgICAg
fQogCiAgICAgLy8gQ2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1mbG93dG8KLSAg
ICBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklBRmxvd1RvKCkpIHsKLSAgICAgICAgcmVtb3Zl
QXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9GTE9XU19UTyk7Ci0g
ICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBh
cmlhRmxvd1RvRWxlbWVudHM7Ci0gICAgICAgIGNvcmVPYmplY3QtPmFyaWFGbG93VG9FbGVtZW50
cyhhcmlhRmxvd1RvRWxlbWVudHMpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjY2Vzc2li
aWxpdHlPYmplY3QgOiBhcmlhRmxvd1RvRWxlbWVudHMpCi0gICAgICAgICAgICBhdGtfcmVsYXRp
b25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fRkxP
V1NfVE8sIGFjY2Vzc2liaWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Ci0gICAgfQorICAgIGlmIChj
b3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFGbG93VG8oKSkKKyAgICAgICAgc2V0QXRrUmVsYXRpb25T
ZXRGb3JHcm91cChjb3JlT2JqZWN0LCByZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RP
KTsKIAogICAgIC8vIENoZWNrIHdoZXRoZXIgb2JqZWN0IHN1cHBvcnRzIGFyaWEtZGVzY3JpYmVk
YnkuIEl0IHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLgot
ICAgIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFEZXNjcmliZWRCeSgpKSB7Ci0gICAgICAg
IHJlbW92ZUF0a1JlbGF0aW9uQnlUeXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fREVTQ1JJ
QkVEX0JZKTsKLSAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOwotICAgICAgICBjb3JlT2JqZWN0LT5h
cmlhRGVzY3JpYmVkQnlFbGVtZW50cyhhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyk7Ci0gICAgICAg
IGZvciAoY29uc3QgYXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFEZXNjcmliZWRCeUVs
ZW1lbnRzKQotICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlw
ZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0RFU0NSSUJFRF9CWSwgYWNjZXNzaWJpbGl0eU9i
amVjdC0+d3JhcHBlcigpKTsKLSAgICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJ
QURlc2NyaWJlZEJ5KCkpCisgICAgICAgIHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9i
amVjdCwgcmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9ERVNDUklCRURfQlkpOwogCiAgICAgLy8g
Q2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1jb250cm9scy4gSXQgcHJvdmlkZXMg
aW5mb3JtYXRpb24gYWJvdXQgZWxlbWVudHMgdGhhdCBhcmUgY29udHJvbGxlZCBieSB0aGUgY3Vy
cmVudCBvYmplY3QuCi0gICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkp
IHsKLSAgICAgICAgcmVtb3ZlQXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUik7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBhcmlhQ29udHJvbHM7Ci0gICAgICAgIGNvcmVPYmplY3Qt
PmFyaWFDb250cm9sc0VsZW1lbnRzKGFyaWFDb250cm9scyk7Ci0gICAgICAgIGZvciAoY29uc3Qg
YXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFDb250cm9scykKLSAgICAgICAgICAgIGF0
a19yZWxhdGlvbl9zZXRfYWRkX3JlbGF0aW9uX2J5X3R5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUiwgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBlcigpKTsKLSAg
ICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkpCisgICAgICAg
IHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9iamVjdCwgcmVsYXRpb25TZXQsIEFUS19S
RUxBVElPTl9DT05UUk9MTEVSX0ZPUik7CisKKyAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBz
dXBwb3J0cyBsaW5rZWRVSUVsZW1lbnRzLiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBl
bGVtZW50cworICAgIC8vIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIHdoaWNoIGlzIGNo
ZWNrZWQgdXNpbmcgbGlua2VkVUlFbGVtZW50cyBtZXRob2QuCisgICAgaWYgKGNvcmVPYmplY3Qt
PnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpKQorICAgICAgICBzZXRBdGtSZWxhdGlvblNldEZv
ckdyb3VwKGNvcmVPYmplY3QsIHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fTUVNQkVSX09GKTsK
IH0KIAogc3RhdGljIGdwb2ludGVyIHdlYmtpdEFjY2Vzc2libGVQYXJlbnRDbGFzcyA9IDA7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWU5OWQ1
YS4uOWIyZDkxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTI5ICBBbmRyemVqIEJhZG93c2tpICA8YS5i
YWRvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBWDogW0FUS10gVXNlIEFUS19SRUxBVElP
Tl9NRU1CRVJfT0YgdG8gaW1wbGVtZW50IGxpbmtlZFVJRWxlbWVudHMgZm9yIHJhZGlvIGJ1dHRv
biBncm91cCBtZW1iZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM5NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50aW5nIEFUSyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRV
SUVsZW1lbnRBdEluZGV4IGZvciByYWRpbyBidXRvbiBncm91cCBtZW1iZXJzLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxpbmtl
ZFVJRWxlbWVudEF0SW5kZXgpOgorCiAyMDE0LTEyLTI3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAgICAgICAgIFtNYWNdIEVuYWJsZSBrZXJuaW5nLCBsaWdhdHVy
ZXMsIGFuZCBwcmludGVyIGZvbnRzIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5OTcwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCmluZGV4IDA5YTk5MWIuLjM2ZDlkNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC03NjIsOCArNzYyLDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4
KEF0a09iamVjdCoKIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQog
ewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFU
SU9OX01FTUJFUl9PRiwgaW5kZXgpOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243794</attachid>
            <date>2014-12-29 05:46:23 -0800</date>
            <delta_ts>2014-12-30 02:02:25 -0800</delta_ts>
            <desc>proposed patch 2</desc>
            <filename>diff_139581_patch2_org.txt</filename>
            <type>text/plain</type>
            <size>12211</size>
            <attacher name="Andrzej Badowski">a.badowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDNhYzM1Li4yN2QyOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTIt
MjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2Vk
VUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyaW5nIGFjY2Vzc2liaWxpdHkv
cmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbCB3aXRoIG90aGVyIHBvcnRzLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9y
YWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTQtMTItMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb24tcmVtb3ZlZC1kdXJpbmct
YW5pbWF0aW9uLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMt
ZXhwZWN0ZWQudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1l
eHBlY3RlZC50eHQKcmVuYW1lIHRvIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0
dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDExMWE0YTYuLjMzZGI4MDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjI5LDcgKzE2MjksNiBAQCB3ZWJraXQu
b3JnL2IvMTE3MTgyIGFjY2Vzc2liaWxpdHkvdGV4dC1yb2xlLXdpdGgtYXJpYS1oaWRkZW4taW5z
aWRlLmh0bWwgWyBGYWlsdQogCiB3ZWJraXQub3JnL2IvMTE4NDE4IGFjY2Vzc2liaWxpdHkvaW1n
LWZhbGxzYmFjay10by10aXRsZS5odG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvOTgzNDgg
IGFjY2Vzc2liaWxpdHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1sIFsgTWlzc2luZyBdCi13
ZWJraXQub3JnL2IvOTgzNDggIGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJl
cnMuaHRtbCBbIE1pc3NpbmcgXQogCiBhY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRv
ZXMtbm90LWV4cG9zZS1sYWJlbC5odG1sIFsgTWlzc2luZyBdCiAKQEAgLTIxMjgsNCArMjEyNyw0
IEBAIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRpbmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5
LWltYWdlLWxheWVycy1keW5hbWljLmh0bWwKIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRp
bmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5LXNpbXBsZS12aWRlby1sYXllci5odG1sIFsgRmFpbHVy
ZSBdCiAKICMgVGhpcyB0ZXN0IG5lZWQgYSByZWJhc2VsaW5lLgotd2Via2l0Lm9yZy9iLzEzOTE1
MCBmYXN0L2Zvcm1zL2Zvcm0taGlkZXMtdGFibGUuaHRtbCBbIEZhaWx1cmUgXQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8xMzkxNTAgZmFzdC9mb3Jtcy9mb3JtLWhp
ZGVzLXRhYmxlLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMzU3MjVmNC4uMmY4ZmRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5LDcgKzc5LDYgQEAgQnVnKEdUSykgZmFzdC9k
b20vV2luZG93L3Nsb3ctdW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9wcGVkLmh0bWwg
WyBXb250RmkKICMgd3JpdHRlbiBpbiBhIHBsYXRmb3JtLXNwZWNpZmljIHdheS4gVGhleSBzaG91
bGQgZWl0aGVyIGJlIG1vdmVkIHRvCiAjIHRoZSByaWdodCBwbGF0Zm9ybSBvciByZS13cml0dGVu
IGluIGEgbW9yZSBwbGF0Zm9ybS1hZ25vc3RpYyB3YXkuCiB3ZWJraXQub3JnL2IvOTgzNDggYWNj
ZXNzaWJpbGl0eS9pbnRlcm5hbC1saW5rLWFuY2hvcnMyLmh0bWwgWyBXb250Rml4IE1pc3Npbmcg
XQotd2Via2l0Lm9yZy9iLzk4MzQ4IGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1l
bWJlcnMuaHRtbCBbIFdvbnRGaXggTWlzc2luZyBdCiAKICMgRmVhdHVyZSBkaXNhYmxlZCwgc2Vl
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0MjUKIHdlYmtpdC5v
cmcvYi85ODkyNSBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LWxlZ2FjeS1oYW5kaGVsZGZyaWVuZGx5
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTE4YzdjLi5kNzM5YzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQtMTItMjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93
c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01F
TUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdy
b3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzk1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgdXNlIG9mIHRoZSBBVEtfUkVMQVRJT05fTUVNQkVSX09GIGluIG9yZGVyIHRvIGV4
cG9zZSByZWxhdGlvbnNoaXAKKyAgICAgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGlu
a2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBzaGFyaW5nIHJhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgd2l0
aCBvdGhlciBwb3J0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNM
aW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgQXNzaWducyByZWxhdGlvbnNo
aXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiBmb3IgcmFkaW8gYnV0dG9uLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAg
KHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXApOgorICAgICAgICBTZXBhcmF0aW9uIG9mIHJlcGVh
dGVkIGNvZGUgZnJvbSBzZXRBdGtSZWxhdGlvblNldEZyb21Db3JlT2JqZWN0LgorICAgICAgICAo
c2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdCk6CisgICAgICAgIEFkZGluZyByZWxhdGlv
bnNoaXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRi4KKwogMjAxNC0xMi0yOCAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZGl0
aW9uYWwgYnVpbGQgZml4IG9uIHdpbiBwb3J0IHNpbmNlIHIxNzc3ODYuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDA0Y2E0
OGIuLjczYTg0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01OTIsNiArNTkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBQ29udHJvbHMoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVt
ZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJc1ByZXNlbnQoKSBjb25zdDsKICAgICBib29s
IGFyaWFJc011bHRpbGluZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggN2NhZTdm
OS4uNTIwN2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDQxLDYgKzEwNDEsMTEgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IKICAgICBhcmlhRWxlbWVudHNGcm9tQXR0cmlidXRlKGFy
aWFDb250cm9scywgYXJpYV9jb250cm9sc0F0dHIpOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsKK30KKwogYm9vbCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IAogewogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZHJvcEVmZmVjdCA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZl
Y3RBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggZTk1ODJmYi4uNjk1NGQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgKQEAgLTE4MCw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFy
aWFEZXNjcmliZWRCeUVsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFDb250cm9scygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGFyaWFIYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAKaW5kZXggMjY3MTY5YS4uNjc1ZTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmNwcApAQCAtMTk4LDYgKzE5OCwyMiBAQCBzdGF0aWMgdm9pZCByZW1vdmVBdGtSZWxhdGlv
bkJ5VHlwZShBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1JlbGF0aW9uVHlwZQogICAg
IH0KIH0KIAorc3RhdGljIHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGb3JHcm91cChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1Jl
bGF0aW9uVHlwZSByZWxhdGlvbikKK3sKKyAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlwZShyZWxh
dGlvblNldCwgcmVsYXRpb24pOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBlbGVtZW50czsKKyAgICBpZiAocmVsYXRpb24gPT0gQVRLX1JFTEFU
SU9OX0ZMT1dTX1RPKQorICAgICAgICBjb3JlT2JqZWN0LT5hcmlhRmxvd1RvRWxlbWVudHMoZWxl
bWVudHMpOworICAgIGVsc2UgaWYgKHJlbGF0aW9uID09IEFUS19SRUxBVElPTl9ERVNDUklCRURf
QlkpCisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKGVsZW1lbnRz
KTsKKyAgICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9GT1Ip
CisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFDb250cm9sc0VsZW1lbnRzKGVsZW1lbnRzKTsKKyAg
ICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fTUVNQkVSX09GKQorICAgICAgICBj
b3JlT2JqZWN0LT5saW5rZWRVSUVsZW1lbnRzKGVsZW1lbnRzKTsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGFjY2Vzc2liaWxpdHlPYmplY3QgOiBlbGVtZW50cykKKyAgICAgICAgYXRrX3JlbGF0aW9u
X3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgcmVsYXRpb24sIGFjY2Vzc2li
aWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9u
U2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrUmVs
YXRpb25TZXQqIHJlbGF0aW9uU2V0KQogewogICAgIGlmIChjb3JlT2JqZWN0LT5pc0ZpZWxkc2V0
KCkpIHsKQEAgLTIzMiwzMSArMjQ4LDIxIEBAIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0
RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrCiAgICAg
fQogCiAgICAgLy8gQ2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1mbG93dG8KLSAg
ICBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklBRmxvd1RvKCkpIHsKLSAgICAgICAgcmVtb3Zl
QXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9GTE9XU19UTyk7Ci0g
ICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBh
cmlhRmxvd1RvRWxlbWVudHM7Ci0gICAgICAgIGNvcmVPYmplY3QtPmFyaWFGbG93VG9FbGVtZW50
cyhhcmlhRmxvd1RvRWxlbWVudHMpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjY2Vzc2li
aWxpdHlPYmplY3QgOiBhcmlhRmxvd1RvRWxlbWVudHMpCi0gICAgICAgICAgICBhdGtfcmVsYXRp
b25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fRkxP
V1NfVE8sIGFjY2Vzc2liaWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Ci0gICAgfQorICAgIGlmIChj
b3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFGbG93VG8oKSkKKyAgICAgICAgc2V0QXRrUmVsYXRpb25T
ZXRGb3JHcm91cChjb3JlT2JqZWN0LCByZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RP
KTsKIAogICAgIC8vIENoZWNrIHdoZXRoZXIgb2JqZWN0IHN1cHBvcnRzIGFyaWEtZGVzY3JpYmVk
YnkuIEl0IHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLgot
ICAgIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFEZXNjcmliZWRCeSgpKSB7Ci0gICAgICAg
IHJlbW92ZUF0a1JlbGF0aW9uQnlUeXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fREVTQ1JJ
QkVEX0JZKTsKLSAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOwotICAgICAgICBjb3JlT2JqZWN0LT5h
cmlhRGVzY3JpYmVkQnlFbGVtZW50cyhhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyk7Ci0gICAgICAg
IGZvciAoY29uc3QgYXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFEZXNjcmliZWRCeUVs
ZW1lbnRzKQotICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlw
ZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0RFU0NSSUJFRF9CWSwgYWNjZXNzaWJpbGl0eU9i
amVjdC0+d3JhcHBlcigpKTsKLSAgICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJ
QURlc2NyaWJlZEJ5KCkpCisgICAgICAgIHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9i
amVjdCwgcmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9ERVNDUklCRURfQlkpOwogCiAgICAgLy8g
Q2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1jb250cm9scy4gSXQgcHJvdmlkZXMg
aW5mb3JtYXRpb24gYWJvdXQgZWxlbWVudHMgdGhhdCBhcmUgY29udHJvbGxlZCBieSB0aGUgY3Vy
cmVudCBvYmplY3QuCi0gICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkp
IHsKLSAgICAgICAgcmVtb3ZlQXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUik7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBhcmlhQ29udHJvbHM7Ci0gICAgICAgIGNvcmVPYmplY3Qt
PmFyaWFDb250cm9sc0VsZW1lbnRzKGFyaWFDb250cm9scyk7Ci0gICAgICAgIGZvciAoY29uc3Qg
YXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFDb250cm9scykKLSAgICAgICAgICAgIGF0
a19yZWxhdGlvbl9zZXRfYWRkX3JlbGF0aW9uX2J5X3R5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUiwgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBlcigpKTsKLSAg
ICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkpCisgICAgICAg
IHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9iamVjdCwgcmVsYXRpb25TZXQsIEFUS19S
RUxBVElPTl9DT05UUk9MTEVSX0ZPUik7CisKKyAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBz
dXBwb3J0cyBsaW5rZWRVSUVsZW1lbnRzLiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBl
bGVtZW50cworICAgIC8vIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIHdoaWNoIGlzIGNo
ZWNrZWQgdXNpbmcgbGlua2VkVUlFbGVtZW50cyBtZXRob2QuCisgICAgaWYgKGNvcmVPYmplY3Qt
PnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpKQorICAgICAgICBzZXRBdGtSZWxhdGlvblNldEZv
ckdyb3VwKGNvcmVPYmplY3QsIHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fTUVNQkVSX09GKTsK
IH0KIAogc3RhdGljIGdwb2ludGVyIHdlYmtpdEFjY2Vzc2libGVQYXJlbnRDbGFzcyA9IDA7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWU5OWQ1
YS4uOWIyZDkxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTI5ICBBbmRyemVqIEJhZG93c2tpICA8YS5i
YWRvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBWDogW0FUS10gVXNlIEFUS19SRUxBVElP
Tl9NRU1CRVJfT0YgdG8gaW1wbGVtZW50IGxpbmtlZFVJRWxlbWVudHMgZm9yIHJhZGlvIGJ1dHRv
biBncm91cCBtZW1iZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM5NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50aW5nIEFUSyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRV
SUVsZW1lbnRBdEluZGV4IGZvciByYWRpbyBidXRvbiBncm91cCBtZW1iZXJzLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxpbmtl
ZFVJRWxlbWVudEF0SW5kZXgpOgorCiAyMDE0LTEyLTI3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAgICAgICAgIFtNYWNdIEVuYWJsZSBrZXJuaW5nLCBsaWdhdHVy
ZXMsIGFuZCBwcmludGVyIGZvbnRzIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5OTcwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCmluZGV4IDA5YTk5MWIuLjM2ZDlkNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC03NjIsOCArNzYyLDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4
KEF0a09iamVjdCoKIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQog
ewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFU
SU9OX01FTUJFUl9PRiwgaW5kZXgpOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243819</attachid>
            <date>2014-12-30 02:02:25 -0800</date>
            <delta_ts>2016-08-17 08:59:53 -0700</delta_ts>
            <desc>proposed patch 2</desc>
            <filename>diff_139581_patch2_org.txt</filename>
            <type>text/plain</type>
            <size>12211</size>
            <attacher name="Andrzej Badowski">a.badowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDNhYzM1Li4yN2QyOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTIt
MjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2Vk
VUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaGFyaW5nIGFjY2Vzc2liaWxpdHkv
cmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbCB3aXRoIG90aGVyIHBvcnRzLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9y
YWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTQtMTItMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb24tcmVtb3ZlZC1kdXJpbmct
YW5pbWF0aW9uLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMt
ZXhwZWN0ZWQudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tZ3JvdXAtbWVtYmVycy1l
eHBlY3RlZC50eHQKcmVuYW1lIHRvIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0
dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDExMWE0YTYuLjMzZGI4MDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjI5LDcgKzE2MjksNiBAQCB3ZWJraXQu
b3JnL2IvMTE3MTgyIGFjY2Vzc2liaWxpdHkvdGV4dC1yb2xlLXdpdGgtYXJpYS1oaWRkZW4taW5z
aWRlLmh0bWwgWyBGYWlsdQogCiB3ZWJraXQub3JnL2IvMTE4NDE4IGFjY2Vzc2liaWxpdHkvaW1n
LWZhbGxzYmFjay10by10aXRsZS5odG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvOTgzNDgg
IGFjY2Vzc2liaWxpdHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5odG1sIFsgTWlzc2luZyBdCi13
ZWJraXQub3JnL2IvOTgzNDggIGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJl
cnMuaHRtbCBbIE1pc3NpbmcgXQogCiBhY2Nlc3NpYmlsaXR5L25lZ2F0aXZlLXRhYmluZGV4LWRv
ZXMtbm90LWV4cG9zZS1sYWJlbC5odG1sIFsgTWlzc2luZyBdCiAKQEAgLTIxMjgsNCArMjEyNyw0
IEBAIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRpbmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5
LWltYWdlLWxheWVycy1keW5hbWljLmh0bWwKIHdlYmtpdC5vcmcvYi8xMzY0MDYgY29tcG9zaXRp
bmcvdmlzaWJpbGl0eS92aXNpYmlsaXR5LXNpbXBsZS12aWRlby1sYXllci5odG1sIFsgRmFpbHVy
ZSBdCiAKICMgVGhpcyB0ZXN0IG5lZWQgYSByZWJhc2VsaW5lLgotd2Via2l0Lm9yZy9iLzEzOTE1
MCBmYXN0L2Zvcm1zL2Zvcm0taGlkZXMtdGFibGUuaHRtbCBbIEZhaWx1cmUgXQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8xMzkxNTAgZmFzdC9mb3Jtcy9mb3JtLWhp
ZGVzLXRhYmxlLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMzU3MjVmNC4uMmY4ZmRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5LDcgKzc5LDYgQEAgQnVnKEdUSykgZmFzdC9k
b20vV2luZG93L3Nsb3ctdW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9wcGVkLmh0bWwg
WyBXb250RmkKICMgd3JpdHRlbiBpbiBhIHBsYXRmb3JtLXNwZWNpZmljIHdheS4gVGhleSBzaG91
bGQgZWl0aGVyIGJlIG1vdmVkIHRvCiAjIHRoZSByaWdodCBwbGF0Zm9ybSBvciByZS13cml0dGVu
IGluIGEgbW9yZSBwbGF0Zm9ybS1hZ25vc3RpYyB3YXkuCiB3ZWJraXQub3JnL2IvOTgzNDggYWNj
ZXNzaWJpbGl0eS9pbnRlcm5hbC1saW5rLWFuY2hvcnMyLmh0bWwgWyBXb250Rml4IE1pc3Npbmcg
XQotd2Via2l0Lm9yZy9iLzk4MzQ4IGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1l
bWJlcnMuaHRtbCBbIFdvbnRGaXggTWlzc2luZyBdCiAKICMgRmVhdHVyZSBkaXNhYmxlZCwgc2Vl
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0MjUKIHdlYmtpdC5v
cmcvYi85ODkyNSBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LWxlZ2FjeS1oYW5kaGVsZGZyaWVuZGx5
Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTE4YzdjLi5kNzM5YzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQtMTItMjkgIEFuZHJ6ZWogQmFkb3dza2kgIDxhLmJhZG93
c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFYOiBbQVRLXSBVc2UgQVRLX1JFTEFUSU9OX01F
TUJFUl9PRiB0byBpbXBsZW1lbnQgbGlua2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdy
b3VwIG1lbWJlcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzk1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgdXNlIG9mIHRoZSBBVEtfUkVMQVRJT05fTUVNQkVSX09GIGluIG9yZGVyIHRvIGV4
cG9zZSByZWxhdGlvbnNoaXAKKyAgICAgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGlu
a2VkVUlFbGVtZW50cyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwIG1lbWJlcnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBzaGFyaW5nIHJhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwgd2l0
aCBvdGhlciBwb3J0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNM
aW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgQXNzaWducyByZWxhdGlvbnNo
aXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRiBmb3IgcmFkaW8gYnV0dG9uLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAg
KHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXApOgorICAgICAgICBTZXBhcmF0aW9uIG9mIHJlcGVh
dGVkIGNvZGUgZnJvbSBzZXRBdGtSZWxhdGlvblNldEZyb21Db3JlT2JqZWN0LgorICAgICAgICAo
c2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdCk6CisgICAgICAgIEFkZGluZyByZWxhdGlv
bnNoaXAgQVRLX1JFTEFUSU9OX01FTUJFUl9PRi4KKwogMjAxNC0xMi0yOCAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZGl0
aW9uYWwgYnVpbGQgZml4IG9uIHdpbiBwb3J0IHNpbmNlIHIxNzc3ODYuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDA0Y2E0
OGIuLjczYTg0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC01OTIsNiArNTkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBQ29udHJvbHMoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVt
ZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJc1ByZXNlbnQoKSBjb25zdDsKICAgICBib29s
IGFyaWFJc011bHRpbGluZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggN2NhZTdm
OS4uNTIwN2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDQxLDYgKzEwNDEsMTEgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IKICAgICBhcmlhRWxlbWVudHNGcm9tQXR0cmlidXRlKGFy
aWFDb250cm9scywgYXJpYV9jb250cm9sc0F0dHIpOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvQnV0dG9uUm9sZTsKK30KKwogYm9vbCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IAogewogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZHJvcEVmZmVjdCA9IGdldEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZl
Y3RBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggZTk1ODJmYi4uNjk1NGQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmgKQEAgLTE4MCw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFy
aWFEZXNjcmliZWRCeUVsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFDb250cm9scygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNMaW5rZWRVSUVsZW1lbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGFyaWFIYXNQb3B1cCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAKaW5kZXggMjY3MTY5YS4uNjc1ZTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmNwcApAQCAtMTk4LDYgKzE5OCwyMiBAQCBzdGF0aWMgdm9pZCByZW1vdmVBdGtSZWxhdGlv
bkJ5VHlwZShBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1JlbGF0aW9uVHlwZQogICAg
IH0KIH0KIAorc3RhdGljIHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGb3JHcm91cChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGtSZWxhdGlvblNldCogcmVsYXRpb25TZXQsIEF0a1Jl
bGF0aW9uVHlwZSByZWxhdGlvbikKK3sKKyAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlwZShyZWxh
dGlvblNldCwgcmVsYXRpb24pOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBlbGVtZW50czsKKyAgICBpZiAocmVsYXRpb24gPT0gQVRLX1JFTEFU
SU9OX0ZMT1dTX1RPKQorICAgICAgICBjb3JlT2JqZWN0LT5hcmlhRmxvd1RvRWxlbWVudHMoZWxl
bWVudHMpOworICAgIGVsc2UgaWYgKHJlbGF0aW9uID09IEFUS19SRUxBVElPTl9ERVNDUklCRURf
QlkpCisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKGVsZW1lbnRz
KTsKKyAgICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9GT1Ip
CisgICAgICAgIGNvcmVPYmplY3QtPmFyaWFDb250cm9sc0VsZW1lbnRzKGVsZW1lbnRzKTsKKyAg
ICBlbHNlIGlmIChyZWxhdGlvbiA9PSBBVEtfUkVMQVRJT05fTUVNQkVSX09GKQorICAgICAgICBj
b3JlT2JqZWN0LT5saW5rZWRVSUVsZW1lbnRzKGVsZW1lbnRzKTsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGFjY2Vzc2liaWxpdHlPYmplY3QgOiBlbGVtZW50cykKKyAgICAgICAgYXRrX3JlbGF0aW9u
X3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgcmVsYXRpb24sIGFjY2Vzc2li
aWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9u
U2V0RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrUmVs
YXRpb25TZXQqIHJlbGF0aW9uU2V0KQogewogICAgIGlmIChjb3JlT2JqZWN0LT5pc0ZpZWxkc2V0
KCkpIHsKQEAgLTIzMiwzMSArMjQ4LDIxIEBAIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0
RnJvbUNvcmVPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrCiAgICAg
fQogCiAgICAgLy8gQ2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1mbG93dG8KLSAg
ICBpZiAoY29yZU9iamVjdC0+c3VwcG9ydHNBUklBRmxvd1RvKCkpIHsKLSAgICAgICAgcmVtb3Zl
QXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9GTE9XU19UTyk7Ci0g
ICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBh
cmlhRmxvd1RvRWxlbWVudHM7Ci0gICAgICAgIGNvcmVPYmplY3QtPmFyaWFGbG93VG9FbGVtZW50
cyhhcmlhRmxvd1RvRWxlbWVudHMpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjY2Vzc2li
aWxpdHlPYmplY3QgOiBhcmlhRmxvd1RvRWxlbWVudHMpCi0gICAgICAgICAgICBhdGtfcmVsYXRp
b25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fRkxP
V1NfVE8sIGFjY2Vzc2liaWxpdHlPYmplY3QtPndyYXBwZXIoKSk7Ci0gICAgfQorICAgIGlmIChj
b3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFGbG93VG8oKSkKKyAgICAgICAgc2V0QXRrUmVsYXRpb25T
ZXRGb3JHcm91cChjb3JlT2JqZWN0LCByZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RP
KTsKIAogICAgIC8vIENoZWNrIHdoZXRoZXIgb2JqZWN0IHN1cHBvcnRzIGFyaWEtZGVzY3JpYmVk
YnkuIEl0IHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLgot
ICAgIGlmIChjb3JlT2JqZWN0LT5zdXBwb3J0c0FSSUFEZXNjcmliZWRCeSgpKSB7Ci0gICAgICAg
IHJlbW92ZUF0a1JlbGF0aW9uQnlUeXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fREVTQ1JJ
QkVEX0JZKTsKLSAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzOwotICAgICAgICBjb3JlT2JqZWN0LT5h
cmlhRGVzY3JpYmVkQnlFbGVtZW50cyhhcmlhRGVzY3JpYmVkQnlFbGVtZW50cyk7Ci0gICAgICAg
IGZvciAoY29uc3QgYXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFEZXNjcmliZWRCeUVs
ZW1lbnRzKQotICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlw
ZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0RFU0NSSUJFRF9CWSwgYWNjZXNzaWJpbGl0eU9i
amVjdC0+d3JhcHBlcigpKTsKLSAgICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJ
QURlc2NyaWJlZEJ5KCkpCisgICAgICAgIHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9i
amVjdCwgcmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9ERVNDUklCRURfQlkpOwogCiAgICAgLy8g
Q2hlY2sgd2hldGhlciBvYmplY3Qgc3VwcG9ydHMgYXJpYS1jb250cm9scy4gSXQgcHJvdmlkZXMg
aW5mb3JtYXRpb24gYWJvdXQgZWxlbWVudHMgdGhhdCBhcmUgY29udHJvbGxlZCBieSB0aGUgY3Vy
cmVudCBvYmplY3QuCi0gICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkp
IHsKLSAgICAgICAgcmVtb3ZlQXRrUmVsYXRpb25CeVR5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUik7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBhcmlhQ29udHJvbHM7Ci0gICAgICAgIGNvcmVPYmplY3Qt
PmFyaWFDb250cm9sc0VsZW1lbnRzKGFyaWFDb250cm9scyk7Ci0gICAgICAgIGZvciAoY29uc3Qg
YXV0byYgYWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFDb250cm9scykKLSAgICAgICAgICAgIGF0
a19yZWxhdGlvbl9zZXRfYWRkX3JlbGF0aW9uX2J5X3R5cGUocmVsYXRpb25TZXQsIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUiwgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBlcigpKTsKLSAg
ICB9CisgICAgaWYgKGNvcmVPYmplY3QtPnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkpCisgICAgICAg
IHNldEF0a1JlbGF0aW9uU2V0Rm9yR3JvdXAoY29yZU9iamVjdCwgcmVsYXRpb25TZXQsIEFUS19S
RUxBVElPTl9DT05UUk9MTEVSX0ZPUik7CisKKyAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBz
dXBwb3J0cyBsaW5rZWRVSUVsZW1lbnRzLiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBl
bGVtZW50cworICAgIC8vIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIHdoaWNoIGlzIGNo
ZWNrZWQgdXNpbmcgbGlua2VkVUlFbGVtZW50cyBtZXRob2QuCisgICAgaWYgKGNvcmVPYmplY3Qt
PnN1cHBvcnRzTGlua2VkVUlFbGVtZW50cygpKQorICAgICAgICBzZXRBdGtSZWxhdGlvblNldEZv
ckdyb3VwKGNvcmVPYmplY3QsIHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fTUVNQkVSX09GKTsK
IH0KIAogc3RhdGljIGdwb2ludGVyIHdlYmtpdEFjY2Vzc2libGVQYXJlbnRDbGFzcyA9IDA7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWU5OWQ1
YS4uOWIyZDkxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTI5ICBBbmRyemVqIEJhZG93c2tpICA8YS5i
YWRvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBWDogW0FUS10gVXNlIEFUS19SRUxBVElP
Tl9NRU1CRVJfT0YgdG8gaW1wbGVtZW50IGxpbmtlZFVJRWxlbWVudHMgZm9yIHJhZGlvIGJ1dHRv
biBncm91cCBtZW1iZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM5NTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50aW5nIEFUSyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRV
SUVsZW1lbnRBdEluZGV4IGZvciByYWRpbyBidXRvbiBncm91cCBtZW1iZXJzLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxpbmtl
ZFVJRWxlbWVudEF0SW5kZXgpOgorCiAyMDE0LTEyLTI3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAgICAgICAgIFtNYWNdIEVuYWJsZSBrZXJuaW5nLCBsaWdhdHVy
ZXMsIGFuZCBwcmludGVyIGZvbnRzIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5OTcwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCmluZGV4IDA5YTk5MWIuLjM2ZDlkNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC03NjIsOCArNzYyLDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4
KEF0a09iamVjdCoKIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQog
ewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFU
SU9OX01FTUJFUl9PRiwgaW5kZXgpOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCg==
</data>
<flag name="review"
          id="268733"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>