<?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>33088</bug_id>
          
          <creation_ts>2009-12-31 16:38:35 -0800</creation_ts>
          <short_desc>MSAA: &lt;select&gt; elements should broadcast value change events</short_desc>
          <delta_ts>2010-01-05 14:14:00 -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>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>176246</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-12-31 16:38:35 -0800</bug_when>
    <thetext>WebKit should broadcast an EVENT_OBJECT_VALUECHANGE event when the selected index of a non-multiple &lt;select&gt; element changes.

&lt;rdar://problem/7332364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176263</commentid>
    <comment_count>1</comment_count>
      <attachid>45730</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-01 02:43:30 -0800</bug_when>
    <thetext>Created attachment 45730
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176705</commentid>
    <comment_count>2</comment_count>
      <attachid>45730</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-04 08:20:33 -0800</bug_when>
    <thetext>Comment on attachment 45730
patch

&gt; +    enum PostType { PostSynchronously, PostAsynchronously };
&gt; +    void postNotification(RenderObject*, AXNotification, bool postToElement, PostType = PostAsynchronously);

One the one hand, it&apos;s good to not pollute the global WebCore namespace with something like PostType. But on the other, the whole point of such enums is to make code more readable, and if call sites have to utter AXObjectCache::PostSynchronously it&apos;s pretty awkward. I suggest moving such enums out of the class.

r=me as is though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176953</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-04 17:12:40 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 45730 [details])
&gt; &gt; +    enum PostType { PostSynchronously, PostAsynchronously };
&gt; &gt; +    void postNotification(RenderObject*, AXNotification, bool postToElement, PostType = PostAsynchronously);
&gt; 
&gt; One the one hand, it&apos;s good to not pollute the global WebCore namespace with
&gt; something like PostType. But on the other, the whole point of such enums is to
&gt; make code more readable, and if call sites have to utter
&gt; AXObjectCache::PostSynchronously it&apos;s pretty awkward. I suggest moving such
&gt; enums out of the class.
&gt; 
&gt; r=me as is though

I made this change.

Committed in r52773.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177127</commentid>
    <comment_count>4</comment_count>
      <attachid>45730</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-05 06:37:47 -0800</bug_when>
    <thetext>Comment on attachment 45730
patch

&gt; +++ b/WebCore/dom/SelectElement.cpp
&gt; @@ -349,6 +349,8 @@ void SelectElement::setSelectedIndex(SelectElementData&amp; data, Element* element,
&gt;          data.setUserDrivenChange(userDrivenChange);
&gt;          if (fireOnChangeNow)
&gt;              menuListOnChange(data, element);
&gt; +        if (RenderMenuList* menuList = toRenderMenuList(element-&gt;renderer()))
&gt; +            menuList-&gt;didSetSelectedIndex();
&gt;      }

What if the &lt;select&gt; has no renderer (e.g., it&apos;s display:none and someone modifies selectedIndex via JS)? Should we still broadcast in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177387</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-05 14:14:00 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 45730 [details])
&gt; &gt; +++ b/WebCore/dom/SelectElement.cpp
&gt; &gt; @@ -349,6 +349,8 @@ void SelectElement::setSelectedIndex(SelectElementData&amp; data, Element* element,
&gt; &gt;          data.setUserDrivenChange(userDrivenChange);
&gt; &gt;          if (fireOnChangeNow)
&gt; &gt;              menuListOnChange(data, element);
&gt; &gt; +        if (RenderMenuList* menuList = toRenderMenuList(element-&gt;renderer()))
&gt; &gt; +            menuList-&gt;didSetSelectedIndex();
&gt; &gt;      }
&gt; 
&gt; What if the &lt;select&gt; has no renderer (e.g., it&apos;s display:none and someone
&gt; modifies selectedIndex via JS)? Should we still broadcast in that case?

No, a &lt;select&gt; with no renderer would not be exposed in our accessibility tree.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45730</attachid>
            <date>2010-01-01 02:43:30 -0800</date>
            <delta_ts>2010-01-05 06:37:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-MSAA-select-elements-should-broadcast-value-change-e.patch</filename>
            <type>text/plain</type>
            <size>24765</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAxNjFkZjEyM2EyZDQxYzFhYjJhZWRlN2VmMjkxMDFmYjNiOGMxM2Y5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAzMSBEZWMgMjAwOSAxNjo0ODo1NyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IDxzZWxlY3Q+IGVsZW1lbnRzIHNob3VsZCBicm9hZGNhc3QgdmFsdWUgY2hhbmdlIGV2ZW50
cwoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMDg4Cgo8cmRhcjov
L3Byb2JsZW0vNzMzMjM2ND4KCldlYkNvcmU6CgpOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5k
IGJ1ZyBVUkwgKE9PUFMhKQoKKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6CklmIHRoZSBwb3N0IHR5cGUg
aXMgYXN5bmMsIGZvbGxvdyB0aGUgb2xkIGNvZGUgcGF0aDsgb3RoZXJ3aXNlLCBjYWxsCnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbigpLgoKKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Oik6CkFkZGVkIGEgbmV3IGFjY2Vzc2liaWxpdHkgbm90
aWZpY2F0aW9uLCBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkLiBBZGRlZAphIG5ldyBwYXJhbWV0ZXIg
dG8gcG9zdE5vdGlmaWNhdGlvbigpIHRvIHNwZWNpZnkgd2hldGhlciB0aGUgcG9zdCBzaG91bGQK
YmUgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzLgoKKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9i
amVjdENhY2hlV2luLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CklmIHRoZSBXZWJDb3JlIG5vdGlmaWNhdGlvbiBpcyBBWE1lbnVMaXN0VmFs
dWVDaGFuZ2VkLCBicm9hZGNhc3QgYW4KRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFIGV2ZW50LgoK
KiBkb20vU2VsZWN0RWxlbWVudC5jcHA6CihXZWJDb3JlOjpTZWxlY3RFbGVtZW50OjpzZXRTZWxl
Y3RlZEluZGV4KToKV2hlbiB0aGUgc2VsZWN0ZWQgaW5kZXggb2YgYSBSZW5kZXJNZW51TGlzdCBp
cyBjaGFuZ2VkLCBjYWxsClJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxlY3RlZEluZGV4KCkuCgoq
IHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6
UmVuZGVyTWVudUxpc3QpOgpJbml0aWFsaXplIG5ldyBtZW1iZXIKKFdlYkNvcmU6OlJlbmRlck1l
bnVMaXN0OjpkaWRTZXRTZWxlY3RlZEluZGV4KToKSWYgdGhlIHNlbGVjdGVkIGluZGV4IGhhcyBj
aGFuZ2VkLCBwb3N0IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQgdG8gdGhlCm9iamVjdCBzeW5jaHJv
bm91c2x5LgoKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKRGVjbGFyZSBkaWRTZXRTZWxl
Y3RlZEluZGV4KCksIGFuZCBhZGQgYSBtZW1iZXIgdG8gaG9sZCB0aGUgbGFzdApzZWxlY3RlZCBp
bmRleC4KCldlYktpdFRvb2xzOgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIER1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKGxvZ1ZhbHVlQ2hhbmdlRXZl
bnRzQ2FsbGJhY2spOgpTdGFydCBsb2dnaW5nIHZhbHVlIGNoYW5nZSBldmVudHMuCihBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcyk6CkFkZCBhICJsb2dWYWx1ZUNoYW5nZUV2ZW50
cyIgdG8gdGhlIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyJ3MgSlMgY2xhc3MKZGVmaW5pdGlvbi4K
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKRGlzYWJs
ZSBsb2dnaW5nIG9mIHZhbHVlIGNoYW5nZSBldmVudHMuCgoqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmg6CkRlY2xhcmUgc2V0TG9nVmFsdWVDaGFuZ2VFdmVudHMoKSwg
YW5kIGFkZCBhIG1lbWJlciB2YXJpYWJsZSBmb3IgdGhlCnZhbHVlIGNoYW5nZSBldmVudCBob29r
LgoKKiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKToKU3R1YmJl
ZC4KCiogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKToKU3R1YmJl
ZC4KCiogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcDoK
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CkluaXRp
YWxpemUgbmV3IG1lbWJlciB2YXIuCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKToKRGlzYWJsZSBsb2dnaW5nIG9mIHZhbHVlIGNoYW5nZSBldmVudHMu
Cihsb2dFdmVudFByb2MpOgpXaGVuIHdlIHJlY2VpdmUgYW4gRVZFTlRfT0JKRUNUX1ZBTFVFQ0hB
TkdFLCBsb2cgdGhlIG5hbWUgb2YgdGhlIG9iamVjdAphbmQgaXRzIHZhbHVlLgooQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKToKSWYgZGlzYWJsaW5nIGxv
Z2dpbmcsIHVuaG9vayB0aGUgZXZlbnQsIGFuZCBjbGVhciB0aGUgZXZlbnQgaG9vawptZW1iZXIg
dmFyLiBPdGhlcndpc2UsIHF1ZXJ5IGZvciB0aGUgcm9vdCBlbGVtZW50IHRvIGVuYWJsZQphY2Nl
c3NpYmlsaXR5LCBhbmQgaG9vayBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0UuCgpMYXlvdXRUZXN0
czoKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJp
bGl0eS9zZWxlY3QtZWxlbWVudC12YWx1ZWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LXZhbHVlY2hhbmdl
LWV2ZW50Lmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysKIC4uLi9zZWxlY3QtZWxlbWVudC12YWx1
ZWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgIHwgICAgNiArKysKIC4uLi9zZWxlY3QtZWxlbWVu
dC12YWx1ZWNoYW5nZS1ldmVudC5odG1sICAgICAgICAgIHwgICAzMCArKysrKysrKysrKysrCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDIg
KysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwICAgICAgICAgICAgfCAgIDEzICsrKystLQogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgICAgICAgICAgICAgfCAgICA2ICsrLQogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCAgICAgfCAgICA2ICsrLQogV2ViQ29yZS9kb20vU2Vs
ZWN0RWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrLQog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAgICAgICAgICAgICAgfCAgICA2
ICsrLQogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDQ0ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwICAgICB8ICAgMTEgKysrKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oICAgICAgIHwgICAgNCArLQogLi4uL2d0ay9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckd0ay5jcHAgICAgICAgICAgICAgfCAgICA2ICsrLQogLi4uL21hYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAgICAgICAgICAgICAgfCAgICA1ICsrLQogLi4u
L3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAgICAgICAgICAgICAgfCAgIDM1ICsr
KysrKysrKysrKysrKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDIzMCBpbnNlcnRpb25zKCspLCAxNSBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
YWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC12YWx1ZWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJp
bGl0eS9zZWxlY3QtZWxlbWVudC12YWx1ZWNoYW5nZS1ldmVudC5odG1sCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA5NWE2
ODYuLjdmZGMxOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0wMSAgSm9uIEhvbmV5
Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIE1TQUE6IDxzZWxlY3Q+IGVs
ZW1lbnRzIHNob3VsZCBicm9hZGNhc3QgdmFsdWUgY2hhbmdlIGV2ZW50cworCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzA4OAorCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MzMyMzY0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1l
bnQtdmFsdWVjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC12YWx1ZWNoYW5nZS1ldmVudC5o
dG1sOiBBZGRlZC4KKwogMjAwOS0xMi0zMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NlbGVjdC1lbGVtZW50LXZhbHVlY2hh
bmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3Np
YmlsaXR5L3NlbGVjdC1lbGVtZW50LXZhbHVlY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmUzYzQxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2VsZWN0LWVsZW1lbnQt
dmFsdWVjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUmVjZWl2ZWQg
dmFsdWUgY2hhbmdlIGV2ZW50IGZvciBvYmplY3QgJ3NlbGVjdEVsZW1lbnQnLCB2YWx1ZSAnT3B0
aW9uIDInLgorUmVjZWl2ZWQgdmFsdWUgY2hhbmdlIGV2ZW50IGZvciBvYmplY3QgJ3NlbGVjdEVs
ZW1lbnQnLCB2YWx1ZSAnT3B0aW9uIDMnLgorVGhpcyB0ZXN0cyB0aGF0IHdlIGJyb2FkY2FzdCB2
YWx1ZSBjaGFuZ2UgZXZlbnRzIHdoZW4gdGhlIHNlbGVjdGVkIGl0ZW0gY2hhbmdlcy4KKworCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NlbGVj
dC1lbGVtZW50LXZhbHVlY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVudC12YWx1ZWNoYW5nZS1ldmVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMDYxMjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zZWxlY3QtZWxlbWVu
dC12YWx1ZWNoYW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGJvZHkg
aWQ9ImJvZHkiPgorCis8cD5UaGlzIHRlc3RzIHRoYXQgd2UgYnJvYWRjYXN0IHZhbHVlIGNoYW5n
ZSBldmVudHMgd2hlbiB0aGUgc2VsZWN0ZWQgaXRlbSBjaGFuZ2VzLjwvcD4KKworPHAgaWQ9Im5v
dERSVCI+VGhpcyB0ZXN0IHNob3VsZCBvbmx5IGJlIHJ1biBpbnNpZGUgb2YgRHVtcFJlbmRlclRy
ZWUuPC9wPgorCis8c2VsZWN0IGlkPSJzZWxlY3RFbGVtZW50IiB0aXRsZT0ic2VsZWN0RWxlbWVu
dCI+CisgICAgPG9wdGlvbiBTRUxFQ1RFRD5PcHRpb24gMTwvb3B0aW9uPgorICAgIDxvcHRpb24+
T3B0aW9uIDI8L29wdGlvbj4KKyAgICA8b3B0aW9uPk9wdGlvbiAzPC9vcHRpb24+Cis8L3NlbGVj
dD4KKworPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibm90RFJUIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICAgICAgYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIubG9nVmFsdWVDaGFuZ2VFdmVudHMoKTsKKworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLmZvY3VzKCk7CisKKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5zZWxlY3RlZEluZGV4ID0g
MTsKKworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQxYmYyYi4uODQwZTU5NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBA
QAorMjAxMC0wMS0wMSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisg
ICAgICAgIE1TQUE6IDxzZWxlY3Q+IGVsZW1lbnRzIHNob3VsZCBicm9hZGNhc3QgdmFsdWUgY2hh
bmdlIGV2ZW50cworCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMzA4OAorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzMyMzY0PgorCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIElmIHRoZSBwb3N0IHR5cGUg
aXMgYXN5bmMsIGZvbGxvdyB0aGUgb2xkIGNvZGUgcGF0aDsgb3RoZXJ3aXNlLCBjYWxsCisgICAg
ICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbigpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgor
ICAgICAgICBBZGRlZCBhIG5ldyBhY2Nlc3NpYmlsaXR5IG5vdGlmaWNhdGlvbiwgQVhNZW51TGlz
dFZhbHVlQ2hhbmdlZC4gQWRkZWQKKyAgICAgICAgYSBuZXcgcGFyYW1ldGVyIHRvIHBvc3ROb3Rp
ZmljYXRpb24oKSB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlIHBvc3Qgc2hvdWxkCisgICAgICAgIGJl
IHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
d2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgSWYgdGhlIFdlYkNvcmUgbm90
aWZpY2F0aW9uIGlzIEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQsIGJyb2FkY2FzdCBhbgorICAgICAg
ICBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0UgZXZlbnQuCisKKyAgICAgICAgKiBkb20vU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3Rl
ZEluZGV4KToKKyAgICAgICAgV2hlbiB0aGUgc2VsZWN0ZWQgaW5kZXggb2YgYSBSZW5kZXJNZW51
TGlzdCBpcyBjaGFuZ2VkLCBjYWxsCisgICAgICAgIFJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxl
Y3RlZEluZGV4KCkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0KToKKyAgICAg
ICAgSW5pdGlhbGl6ZSBuZXcgbWVtYmVyCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlz
dDo6ZGlkU2V0U2VsZWN0ZWRJbmRleCk6CisgICAgICAgIElmIHRoZSBzZWxlY3RlZCBpbmRleCBo
YXMgY2hhbmdlZCwgcG9zdCBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkIHRvIHRoZQorICAgICAgICBv
YmplY3Qgc3luY2hyb25vdXNseS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5oOgorICAgICAgICBEZWNsYXJlIGRpZFNldFNlbGVjdGVkSW5kZXgoKSwgYW5kIGFkZCBhIG1l
bWJlciB0byBob2xkIHRoZSBsYXN0CisgICAgICAgIHNlbGVjdGVkIGluZGV4LgorCiAyMDA5LTEy
LTMxICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCBlNDZmYzQxLi44Y2ZkNmMwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDEsNyArMzQxLDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZChUaW1lcjxBWE9iamVj
dENhY2hlPiopCiB9CiAgICAgCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZp
Y2F0aW9uIG5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50KQordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSBwb3N0VHlwZSkK
IHsKICAgICAvLyBOb3RpZmljYXRpb25zIGZvciB0ZXh0IGlucHV0IG9iamVjdHMgYXJlIHNlbnQg
dG8gdGhhdCBvYmplY3QuCiAgICAgLy8gQWxsIG90aGVycyBhcmUgc2VudCB0byB0aGUgdG9wIFdl
YkFyZWEuCkBAIC0zNjksOSArMzY5LDEyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlm
aWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpCiAgICAg
aWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fbm90aWZpY2F0aW9uc1RvUG9zdC5h
cHBlbmQobWFrZV9wYWlyKG9iaiwgbm90aWZpY2F0aW9uKSk7Ci0gICAgaWYgKCFtX25vdGlmaWNh
dGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX25vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgaWYgKHBvc3RUeXBlID09IFBvc3RBc3luY2hyb25vdXNs
eSkgeworICAgICAgICBtX25vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKG1ha2VfcGFpcihvYmos
IG5vdGlmaWNhdGlvbikpOworICAgICAgICBpZiAoIW1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICBtX25vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNo
b3QoMCk7CisgICAgfSBlbHNlCisgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmou
Z2V0KCksIG5vdGlmaWNhdGlvbik7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCmluZGV4IGFkZmRkY2QuLjA0YTY5OTIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTA4LDkgKzEwOCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEFYU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCwKICAgICAgICAgQVhWYWx1ZUNoYW5nZWQsCiAgICAgICAgIEFYU2Nyb2xsZWRU
b0FuY2hvciwKKyAgICAgICAgQVhNZW51TGlzdFZhbHVlQ2hhbmdlZCwKICAgICB9OwogICAgIAot
ICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwg
Ym9vbCBwb3N0VG9FbGVtZW50KTsKKyAgICBlbnVtIFBvc3RUeXBlIHsgUG9zdFN5bmNocm9ub3Vz
bHksIFBvc3RBc3luY2hyb25vdXNseSB9OworICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5k
ZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9
IFBvc3RBc3luY2hyb25vdXNseSk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKaW5kZXggZTc2
OGE4YS4uOGI3ZDk5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9i
amVjdENhY2hlV2luLmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0
Q2FjaGVXaW4uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC04Myw2ICs4MywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgICAgICAgICAgbXNhYUV2ZW50ID0gRVZFTlRfU1lTVEVNX1NDUk9MTElOR1NUQVJUOwog
ICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2Vk
OgorICAgICAgICAgICAgbXNhYUV2ZW50ID0gRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFOworICAg
ICAgICAgICAgYnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDJkMDAzNTAuLjU0Mzg3ZmMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NlbGVj
dEVsZW1lbnQuY3BwCkBAIC0zNDksNiArMzQ5LDggQEAgdm9pZCBTZWxlY3RFbGVtZW50OjpzZXRT
ZWxlY3RlZEluZGV4KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50LAog
ICAgICAgICBkYXRhLnNldFVzZXJEcml2ZW5DaGFuZ2UodXNlckRyaXZlbkNoYW5nZSk7CiAgICAg
ICAgIGlmIChmaXJlT25DaGFuZ2VOb3cpCiAgICAgICAgICAgICBtZW51TGlzdE9uQ2hhbmdlKGRh
dGEsIGVsZW1lbnQpOworICAgICAgICBpZiAoUmVuZGVyTWVudUxpc3QqIG1lbnVMaXN0ID0gdG9S
ZW5kZXJNZW51TGlzdChlbGVtZW50LT5yZW5kZXJlcigpKSkKKyAgICAgICAgICAgIG1lbnVMaXN0
LT5kaWRTZXRTZWxlY3RlZEluZGV4KCk7CiAgICAgfQogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKaW5kZXggMTNmZTc0Ny4uY2Q0OTZiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
c2VsZWN0IGVsZW1lbnQgcmVuZGVyZXIgaW4gV2ViQ29yZS4KICAqCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqICAgICAgICAgICAgICAgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJN
ZW51TGlzdC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgpAQCAtNTAsNiArNTEsNyBAQCBSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoRWxlbWVu
dCogZWxlbWVudCkKICAgICAsIG1faW5uZXJCbG9jaygwKQogICAgICwgbV9vcHRpb25zQ2hhbmdl
ZCh0cnVlKQogICAgICwgbV9vcHRpb25zV2lkdGgoMCkKKyAgICAsIG1fbGFzdFNlbGVjdGVkSW5k
ZXgoLTEpCiAgICAgLCBtX3BvcHVwKDApCiAgICAgLCBtX3BvcHVwSXNWaXNpYmxlKGZhbHNlKQog
ewpAQCAtMzA2LDYgKzMwOCwxOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp2YWx1ZUNoYW5nZWQo
dW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVPbkNoYW5nZSkKICAgICBzZWxlY3QtPnNldFNl
bGVjdGVkSW5kZXhCeVVzZXIoc2VsZWN0LT5saXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCB0
cnVlLCBmaXJlT25DaGFuZ2UpOwogfQogCit2b2lkIFJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxl
Y3RlZEluZGV4KCkKK3sKKyAgICBpbnQgaW5kZXggPSBzZWxlY3RlZEluZGV4KCk7CisgICAgaWYg
KG1fbGFzdFNlbGVjdGVkSW5kZXggPT0gaW5kZXgpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
bGFzdFNlbGVjdGVkSW5kZXggPSBpbmRleDsKKworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCkt
PnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhNZW51TGlzdFZhbHVlQ2hh
bmdlZCwgdHJ1ZSwgQVhPYmplY3RDYWNoZTo6UG9zdFN5bmNocm9ub3VzbHkpOworfQorCiBTdHJp
bmcgUmVuZGVyTWVudUxpc3Q6Oml0ZW1UZXh0KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKIHsK
ICAgICBTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUoKSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggN2Nl
ZDJhMC4uMjY2ODY5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxlY3QgZWxlbWVudCByZW5k
ZXJlciBpbiBXZWJDb3JlLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3B0aW9u
c0NoYW5nZWQoYm9vbCBjaGFuZ2VkKSB7IG1fb3B0aW9uc0NoYW5nZWQgPSBjaGFuZ2VkOyB9CiAK
KyAgICB2b2lkIGRpZFNldFNlbGVjdGVkSW5kZXgoKTsKKwogICAgIFN0cmluZyB0ZXh0KCkgY29u
c3Q7CiAKIHByaXZhdGU6CkBAIC0xMTEsNiArMTEzLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1f
b3B0aW9uc0NoYW5nZWQ7CiAgICAgaW50IG1fb3B0aW9uc1dpZHRoOwogCisgICAgaW50IG1fbGFz
dFNlbGVjdGVkSW5kZXg7CisKICAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVwOwogICAgIGJv
b2wgbV9wb3B1cElzVmlzaWJsZTsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMzdiYzQyNy4uMzhlN2FhMyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ3IEBACisyMDEwLTAxLTAxICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBh
cHBsZS5jb20+CisKKyAgICAgICAgTVNBQTogPHNlbGVjdD4gZWxlbWVudHMgc2hvdWxkIGJyb2Fk
Y2FzdCB2YWx1ZSBjaGFuZ2UgZXZlbnRzCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMzMDg4CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczMzIz
NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChsb2dW
YWx1ZUNoYW5nZUV2ZW50c0NhbGxiYWNrKToKKyAgICAgICAgU3RhcnQgbG9nZ2luZyB2YWx1ZSBj
aGFuZ2UgZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmdldEpTQ2xh
c3MpOgorICAgICAgICBBZGQgYSAibG9nVmFsdWVDaGFuZ2VFdmVudHMiIHRvIHRoZSBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcidzIEpTIGNsYXNzCisgICAgICAgIGRlZmluaXRpb24uCisgICAgICAg
IChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAg
ICAgIERpc2FibGUgbG9nZ2luZyBvZiB2YWx1ZSBjaGFuZ2UgZXZlbnRzLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgRGVjbGFy
ZSBzZXRMb2dWYWx1ZUNoYW5nZUV2ZW50cygpLCBhbmQgYWRkIGEgbWVtYmVyIHZhcmlhYmxlIGZv
ciB0aGUKKyAgICAgICAgdmFsdWUgY2hhbmdlIGV2ZW50IGhvb2suCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKToKKyAgICAg
ICAgU3R1YmJlZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRM
b2dWYWx1ZUNoYW5nZUV2ZW50cyk6CisgICAgICAgIFN0dWJiZWQuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKKyAgICAg
ICAgSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhci4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjp+QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICBEaXNhYmxlIGxvZ2dp
bmcgb2YgdmFsdWUgY2hhbmdlIGV2ZW50cy4KKyAgICAgICAgKGxvZ0V2ZW50UHJvYyk6CisgICAg
ICAgIFdoZW4gd2UgcmVjZWl2ZSBhbiBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0UsIGxvZyB0aGUg
bmFtZSBvZiB0aGUgb2JqZWN0CisgICAgICAgIGFuZCBpdHMgdmFsdWUuCisgICAgICAgIChBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nVmFsdWVDaGFuZ2VFdmVudHMpOgorICAgICAgICBJ
ZiBkaXNhYmxpbmcgbG9nZ2luZywgdW5ob29rIHRoZSBldmVudCwgYW5kIGNsZWFyIHRoZSBldmVu
dCBob29rCisgICAgICAgIG1lbWJlciB2YXIuIE90aGVyd2lzZSwgcXVlcnkgZm9yIHRoZSByb290
IGVsZW1lbnQgdG8gZW5hYmxlCisgICAgICAgIGFjY2Vzc2liaWxpdHksIGFuZCBob29rIEVWRU5U
X09CSkVDVF9WQUxVRUNIQU5HRS4KKwogMjAwOS0xMi0zMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
CmluZGV4IGQzNjg4ZjQuLjA0NWJjODAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDYgKzYzLDEz
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGxvZ0ZvY3VzRXZlbnRzQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGN0eCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGN0eCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGxvZ1ZhbHVlQ2hhbmdlRXZlbnRzQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCwgY29uc3QgSlNWYWx1ZVJlZltdLCBKU1ZhbHVlUmVmKikKK3sKKyAgICBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250
cm9sbGVyLT5zZXRMb2dWYWx1ZUNoYW5nZUV2ZW50cyh0cnVlKTsKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY3R4KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgbG9nU2Nyb2xsaW5n
U3RhcnRFdmVudHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVlUmVmW10sIEpTVmFsdWVSZWYq
KQogewogICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nh
c3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwpAQCAtNzQsNiArODEsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpnZXRKU0NsYXNzKCkKIHsKICAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5j
dGlvbnNbXSA9IHsKICAgICAgICAgeyAibG9nRm9jdXNFdmVudHMiLCBsb2dGb2N1c0V2ZW50c0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImxvZ1ZhbHVlQ2hhbmdlRXZlbnRzIiwgbG9nVmFs
dWVDaGFuZ2VFdmVudHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJsb2dTY3JvbGxpbmdT
dGFydEV2ZW50cyIsIGxvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAwLCAwLCAwIH0KICAgICB9OwpAQCAtOTUsNSArMTAzLDYgQEAgSlNDbGFzc1JlZiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcygpCiB2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKIHsKICAgICBzZXRMb2dGb2N1c0V2
ZW50cyhmYWxzZSk7CisgICAgc2V0TG9nVmFsdWVDaGFuZ2VFdmVudHMoZmFsc2UpOwogICAgIHNl
dExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IGExMGU4YmUu
LmI0ZDQ1ZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBmb2N1c2VkRWxlbWVudCgpOwogCiAgICAgdm9pZCBzZXRMb2dG
b2N1c0V2ZW50cyhib29sKTsKKyAgICB2b2lkIHNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKGJvb2wp
OwogICAgIHZvaWQgc2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoYm9vbCk7CiAKICAgICB2b2lk
IHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKQEAgLTU0LDYgKzU1LDcgQEAgcHJpdmF0ZToKIAog
I2lmIFBMQVRGT1JNKFdJTikKICAgICBIV0lORVZFTlRIT09LIG1fZm9jdXNFdmVudEhvb2s7Cisg
ICAgSFdJTkVWRU5USE9PSyBtX3ZhbHVlQ2hhbmdlRXZlbnRIb29rOwogICAgIEhXSU5FVkVOVEhP
T0sgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vazsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckd0ay5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJHdGsuY3BwCmluZGV4IGRmMDZjZWEuLmQ5NWY4NTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckd0ay5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyR3Rr
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEw
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBK
YW4gTWljaGFlbCBBbG9uem8KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTczLDMgKzczLDcgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nRm9jdXNFdmVudHMoYm9vbCkKIHZvaWQg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0RXZlbnRzKGJvb2wp
CiB7CiB9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1ZhbHVlQ2hhbmdl
RXZlbnRzKGJvb2wpCit7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggNjdlMGZhNC4u
NDg5NWExYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjIsMyArNjIsNiBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dTY3JvbGxpbmdTdGFydEV2ZW50cyhi
b29sKQogewogfQogCit2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dWYWx1ZUNo
YW5nZUV2ZW50cyhib29sKQoreworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYWM2
NGVmYi4uMWFiYjcxZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSwxMiAr
MzksMTQgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpCiAgICAgOiBtX2ZvY3VzRXZlbnRIb29rKDApCiAgICAg
LCBtX3Njcm9sbGluZ1N0YXJ0RXZlbnRIb29rKDApCisgICAgLCBtX3ZhbHVlQ2hhbmdlRXZlbnRI
b29rKDApCiB7CiB9CiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKQogewogICAgIHNldExvZ0ZvY3VzRXZlbnRzKGZhbHNlKTsKKyAgICBzZXRMb2dW
YWx1ZUNoYW5nZUV2ZW50cyhmYWxzZSk7CiB9CiAKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKQEAgLTExMiw2ICsxMTQsMTcg
QEAgc3RhdGljIHZvaWQgQ0FMTEJBQ0sgbG9nRXZlbnRQcm9jKEhXSU5FVkVOVEhPT0sgaFdpbkV2
ZW50SG9vaywgRFdPUkQgZXZlbnQsIEhXTkQKICAgICAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQg
Zm9jdXMgZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFOiB7Cisg
ICAgICAgICAgICBCU1RSIHZhbHVlQlNUUjsKKyAgICAgICAgICAgIGhyID0gcGFyZW50T2JqZWN0
LT5nZXRfYWNjVmFsdWUodkNoaWxkLCAmdmFsdWVCU1RSKTsKKyAgICAgICAgICAgIEFTU0VSVChT
VUNDRUVERUQoaHIpKTsKKyAgICAgICAgICAgIHdzdHJpbmcgdmFsdWUodmFsdWVCU1RSLCA6OlN5
c1N0cmluZ0xlbih2YWx1ZUJTVFIpKTsKKyAgICAgICAgICAgIFN5c0ZyZWVTdHJpbmcodmFsdWVC
U1RSKTsKKworICAgICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCB2YWx1ZSBjaGFuZ2UgZXZlbnQg
Zm9yIG9iamVjdCAnJVMnLCB2YWx1ZSAnJVMnLlxuIiwgbmFtZS5jX3N0cigpLCB2YWx1ZS5jX3N0
cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBFVkVO
VF9TWVNURU1fU0NST0xMSU5HU1RBUlQ6CiAgICAgICAgICAgICBwcmludGYoIlJlY2VpdmVkIHNj
cm9sbGluZyBzdGFydCBldmVudCBmb3Igb2JqZWN0ICclUycuXG4iLCBuYW1lLmNfc3RyKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xNDIsNiArMTU1LDI2IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OnNldExvZ0ZvY3VzRXZlbnRzKGJvb2wgbG9nRm9jdXNFdmVudHMpCiAgICAg
QVNTRVJUKG1fZm9jdXNFdmVudEhvb2spOwogfQogCit2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpzZXRMb2dWYWx1ZUNoYW5nZUV2ZW50cyhib29sIGxvZ1ZhbHVlQ2hhbmdlRXZlbnRzKQor
eworICAgIGlmICghIW1fdmFsdWVDaGFuZ2VFdmVudEhvb2sgPT0gbG9nVmFsdWVDaGFuZ2VFdmVu
dHMpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbG9nVmFsdWVDaGFuZ2VFdmVudHMpIHsK
KyAgICAgICAgVW5ob29rV2luRXZlbnQobV92YWx1ZUNoYW5nZUV2ZW50SG9vayk7CisgICAgICAg
IG1fdmFsdWVDaGFuZ2VFdmVudEhvb2sgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gRW5zdXJlIHRoYXQgYWNjZXNzaWJpbGl0eSBpcyBpbml0aWFsaXplZCBmb3IgdGhlIFdl
YlZpZXcgYnkgcXVlcnlpbmcgZm9yCisgICAgLy8gdGhlIHJvb3QgYWNjZXNzaWJsZSBvYmplY3Qu
CisgICAgcm9vdEVsZW1lbnQoKTsKKworICAgIG1fdmFsdWVDaGFuZ2VFdmVudEhvb2sgPSBTZXRX
aW5FdmVudEhvb2soRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFLCBFVkVOVF9PQkpFQ1RfVkFMVUVD
SEFOR0UsIEdldE1vZHVsZUhhbmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50UHJvY2Vz
c0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CisKKyAgICBBU1NFUlQobV92YWx1ZUNoYW5n
ZUV2ZW50SG9vayk7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Nj
cm9sbGluZ1N0YXJ0RXZlbnRzKGJvb2wgbG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMpCiB7CiAgICAg
aWYgKCEhbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vayA9PSBsb2dTY3JvbGxpbmdTdGFydEV2ZW50
cykKLS0gCjEuNi41LjIuMTQzLmc4Y2M2MgoK
</data>
<flag name="review"
          id="27836"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="27837"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>