<?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>127908</bug_id>
          
          <creation_ts>2014-01-30 06:19:33 -0800</creation_ts>
          <short_desc>[ATK] Expose aria-controls through ATK_RELATION_CONTROLLER_FOR</short_desc>
          <delta_ts>2014-02-03 01:12:11 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973712</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-01-30 06:19:33 -0800</bug_when>
    <thetext>Based on what w3c says, aria-controls could be exposed through ATK_RELATION_CONTROLLER_FOR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973713</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-30 06:20:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/15945816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973716</commentid>
    <comment_count>2</comment_count>
      <attachid>222666</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-01-30 06:46:02 -0800</bug_when>
    <thetext>Created attachment 222666
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973720</commentid>
    <comment_count>3</comment_count>
      <attachid>222666</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-30 07:24:36 -0800</bug_when>
    <thetext>Comment on attachment 222666
patch

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

The patch looks good to me, but you need to add empty stubs for Mac and iOS too. More specifically, the missing stubs would go to:

  Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
  Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm
  Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1027
&gt; +

Extra line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973721</commentid>
    <comment_count>4</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-01-30 07:31:14 -0800</bug_when>
    <thetext>&gt; The patch looks good to me, but you need to add empty stubs for Mac and iOS too. More specifically, the missing stubs would go to:
&gt; 
&gt;   Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
&gt;   Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm
&gt;   Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1027
&gt; &gt; +
&gt; 
&gt; Extra line

Ops, right I forgot, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974254</commentid>
    <comment_count>5</comment_count>
      <attachid>222806</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-01-31 02:20:13 -0800</bug_when>
    <thetext>Created attachment 222806
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974964</commentid>
    <comment_count>6</comment_count>
      <attachid>222806</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 01:12:07 -0800</bug_when>
    <thetext>Comment on attachment 222806
patch

Clearing flags on attachment: 222806

Committed r163296: &lt;http://trac.webkit.org/changeset/163296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974965</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 01:12:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222666</attachid>
            <date>2014-01-30 06:46:02 -0800</date>
            <delta_ts>2014-01-31 02:20:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-aria-controls.patch</filename>
            <type>text/plain</type>
            <size>21433</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjVmOWY3Li44NGEwMjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDEt
MzAgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gRXhwb3NlIGFyaWEtY29udHJvbHMgdGhyb3VnaCBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9G
T1IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzkw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IHdoZXRoZXIgYXJpYS1jb250cm9scyByZXR1cm5zIGNvcnJlY3QgZWxlbWVudCBhdCB0aGUgZ2l2
ZW4gaW5kZXguCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBw
ZWQgaXQsIG1pc3NpbmcgaW1wbGVtZW50YXRpb24uCisKIDIwMTQtMDEtMjkgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQbGF5
IEJyZWFrcG9pbnQgU291bmQgaW4gRnJvbnRlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQ4ZDcwOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K1BhbmVsIDEKK1BhbmVsIDIKK1RoaXMgdGVzdHMgdGhhdCBhcmlhLWNvbnRyb2xzIHJldHVybnMg
Y29ycmVjdCBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleAorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB0YWIxLmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KDApLnN0cmlu
Z1ZhbHVlIGlzICdBWFZhbHVlOiBQYW5lbCAxJworUEFTUyB0YWIxLmFyaWFDb250cm9sc0VsZW1l
bnRBdEluZGV4KDEpLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBQYW5lbCAyJworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWU0NGRkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1jb250cm9scy5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IGlkPSJib2R5Ij4KKworPHVsIGlkPSJ0YWJsaXN0IiByb2xlPSJ0YWJsaXN0Ij4KKzxs
aSBpZD0idGFiMSIgcm9sZT0idGFiIiBhcmlhLWNvbnRyb2xzPSJwYW5lbDEgcGFuZWwyIj48L2xp
PgorPC91bD4KKworPGRpdiBpZD0icGFuZWwxIj5QYW5lbCAxPC9kaXY+Cis8ZGl2IGlkPSJwYW5l
bDIiPlBhbmVsIDI8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IGFyaWEtY29udHJvbHMgcmV0dXJucyBjb3JyZWN0IGVsZW1lbnQgYXQgdGhlIGdpdmVuIGlu
ZGV4Iik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgIHZhciB0YWJsaXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJ0YWJsaXN0Iik7CisgICAgICAgIHZhciB0YWIxID0gdGFibGlzdC5jaGlsZEF0SW5k
ZXgoMCk7CisKKyAgICAgICAgc2hvdWxkQmUoInRhYjEuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5k
ZXgoMCkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IFBhbmVsIDEnIik7CisgICAgICAgIHNob3Vs
ZEJlKCJ0YWIxLmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KDEpLnN0cmluZ1ZhbHVlIiwgIidB
WFZhbHVlOiBQYW5lbCAyJyIpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjA2OTgyZi4u
MGM0ODk2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTUwLDYgKzUwLDkgQEAgYWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0
aXZlLW9wdGlvbi5odG1sCiAjIGlzSW5kZXRlcm1pbmF0ZSBpcyBub3QgaW1wbGVtZW50ZWQgaW4g
bWFjCiB3ZWJraXQub3JnL2IvMTI1ODU1IGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2VkLW1peGVk
LXZhbHVlLmh0bWwgWyBTa2lwIF0KIAorIyBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCBpcyBu
b3QgaW1wbGVtZW50ZWQgaW4gbWFjCit3ZWJraXQub3JnL2IvMTI3OTA4IGFjY2Vzc2liaWxpdHkv
YXJpYS1jb250cm9scy5odG1sIFsgU2tpcCBdCisKICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0
eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZXJyb3IgcGFnZXMKIGZhc3QvaGlzdG9yeS9i
YWNrLWZvcndhcmQtcmVzZXQtYWZ0ZXItZXJyb3ItaGFuZGxpbmcuaHRtbAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZDc5ZmEzZi4uZDU3MWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE0LTAx
LTMwICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCisgICAgICAgIFtB
VEtdIEV4cG9zZSBhcmlhLWNvbnRyb2xzIHRocm91Z2ggQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJf
Rk9SCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNl
ZCBvbiB3M2MsIGFyaWEtY29udHJvbHMgY291bGQgYmUgZXhwb3NlZCB0aHJvdWdoIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUi4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2FyaWEt
Y29udHJvbHMuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FS
SUFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojphcmlh
Q29udHJvbHNFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnN1cHBvcnRzQVJJQUZsb3dUbyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFDb250cm9scyk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQ29udHJvbHNFbGVtZW50cyk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAg
ICAgICAoc2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdCk6CisKKzIwMTQtMDEtMzAgIEty
enlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKICAgICAgICAgQVg6IENsZWFu
IHVwIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgzOAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM5MGFlMmYuLjI2ZTBjYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC01NTUsNiArNTU1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhcmlh
Rmxvd1RvRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgeyB9CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURlc2NyaWJlZEJ5KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMoQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgeyB9CisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzQVJJQUNvbnRyb2xzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgYXJpYUNvbnRyb2xzRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29u
c3QgeyB9CiAgICAgdmlydHVhbCBib29sIGFyaWFIYXNQb3B1cCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGFyaWFQcmVzc2VkSXNQcmVzZW50KCkgY29uc3Q7CiAg
ICAgYm9vbCBhcmlhSXNNdWx0aWxpbmUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4
IGIzN2QwMjUuLjc3ODYzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTAyNCw2ICsxMDI0
LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhRWxlbWVudHNGcm9tQXR0
cmlidXRlKEFjY2Vzc2liaWxpdHlDaGlsZHJlblYKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c3VwcG9ydHNBUklBRmxvd1RvKCkgY29uc3QKIHsKICAgICByZXR1cm4gIWdldEF0dHJp
YnV0ZShhcmlhX2Zsb3d0b0F0dHIpLmlzRW1wdHkoKTsKKwogfQogICAgIAogdm9pZCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhRmxvd1RvRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJiBmbG93VG8pIGNvbnN0CkBAIC0xMDQxLDYgKzEwNDIsMTYgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhRGVzY3JpYmVkQnlFbGVtZW50cyhBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWMKICAgICBhcmlhRWxlbWVudHNGcm9tQXR0cmlidXRlKGFyaWFEZXNjcmli
ZWRCeSwgYXJpYV9kZXNjcmliZWRieUF0dHIpOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnN1cHBvcnRzQVJJQUNvbnRyb2xzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWdl
dEF0dHJpYnV0ZShhcmlhX2NvbnRyb2xzQXR0cikuaXNFbXB0eSgpOworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFDb250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgYXJpYUNvbnRyb2xzKSBjb25zdAoreworICAgIGFyaWFFbGVtZW50c0Zy
b21BdHRyaWJ1dGUoYXJpYUNvbnRyb2xzLCBhcmlhX2NvbnRyb2xzQXR0cik7Cit9CisKIGJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBRHJvcHBpbmcoKSBjb25zdCAK
IHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRyb3BFZmZlY3QgPSBnZXRBdHRyaWJ1dGUoYXJp
YV9kcm9wZWZmZWN0QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDM1YWQyZDIuLmNkZmZhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCkBAIC0xODIsNiArMTgyLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhcmlhRmxvd1RvRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURlc2NyaWJlZEJ5
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFyaWFEZXNjcmliZWRCeUVsZW1l
bnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFDb250cm9scygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBhcmlhQ29udHJvbHNFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRHJvcHBpbmcoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCBlY2U1OWNj
Li5iNDNlY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9X
ZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCkBAIC0yNTQsNiArMjU0
LDE1IEBAIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0RnJvbUNvcmVPYmplY3QoQWNjZXNz
aWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYg
YWNjZXNzaWJpbGl0eU9iamVjdCA6IGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKQogICAgICAgICAg
ICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgQVRL
X1JFTEFUSU9OX0RFU0NSSUJFRF9CWSwgYWNjZXNzaWJpbGl0eU9iamVjdC0+d3JhcHBlcigpKTsK
ICAgICB9CisKKyAgICAvLyBDaGVjayB3aGV0aGVyIG9iamVjdCBzdXBwb3J0cyBhcmlhLWNvbnRy
b2xzLiBJdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBlbGVtZW50cyB0aGF0IGFyZSBjb250
cm9sbGVkIGJ5IHRoZSBjdXJyZW50IG9iamVjdC4KKyAgICBpZiAoY29yZU9iamVjdC0+c3VwcG9y
dHNBUklBQ29udHJvbHMoKSkgeworICAgICAgICByZW1vdmVBdGtSZWxhdGlvbkJ5VHlwZShyZWxh
dGlvblNldCwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SKTsKKyAgICAgICAgQWNjZXNzaWJp
bGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFyaWFDb250cm9sczsKKyAg
ICAgICAgY29yZU9iamVjdC0+YXJpYUNvbnRyb2xzRWxlbWVudHMoYXJpYUNvbnRyb2xzKTsKKyAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBhY2Nlc3NpYmlsaXR5T2JqZWN0IDogYXJpYUNvbnRyb2xz
KQorICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxh
dGlvblNldCwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SLCBhY2Nlc3NpYmlsaXR5T2JqZWN0
LT53cmFwcGVyKCkpOworICAgIH0KIH0KIAogc3RhdGljIGdwb2ludGVyIHdlYmtpdEFjY2Vzc2li
bGVQYXJlbnRDbGFzcyA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZjA0YTk4ZC4uNjMzNWRmYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTAxLTMwICBL
cnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtdIEV4
cG9zZSBhcmlhLWNvbnRyb2xzIHRocm91Z2ggQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5MDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQgYm90aCBpbiBXS1RSIGFuZCBEUlQgc28gdGhhdCBhcmlhLWNv
bnRyb2xzIHN1cHBvcnQgY291bGQgYmUgdGVzdGVkIHByb3Blcmx5LgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChhcmlhQ29u
dHJvbHNFbGVtZW50QXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldEpTQ2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXgp
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCk6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4
KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJ
bmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVt
ZW50QXRJbmRleCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRXaW4uY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNv
bnRyb2xzRWxlbWVudEF0SW5kZXgpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OmFjY2Vzc2liaWxpdHlFbGVtZW50
QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmtlZFVJ
RWxlbWVudEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhT3duc0VsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFDb250cm9s
c0VsZW1lbnRBdEluZGV4KToKKwogMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikgbGVmdG92ZXJzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwCmluZGV4IDc5M2IzMTAuLjk3ZTdhOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zNjksNiArMzY5LDE1IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIGFyaWFGbG93VG9FbGVtZW50QXRJbmRleENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09i
amVjdCktPmFyaWFGbG93VG9FbGVtZW50QXRJbmRleChpbmRleE51bWJlcikpOwogfQogCitzdGF0
aWMgSlNWYWx1ZVJlZiBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIgPSAwOworICAgIGlm
IChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0gSlNWYWx1ZVRvTnVt
YmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKworICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnRleHQs
IHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5hcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleChpbmRl
eE51bWJlcikpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RlZFJvd0F0SW5kZXhDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IGluZGV4TnVtYmVy
ID0gMDsKQEAgLTE1MTksNiArMTUyOCw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgImRpc2Nsb3NlZFJvd0F0SW5kZXgiLCBkaXNj
bG9zZWRSb3dBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYXJpYU93bnNFbGVt
ZW50QXRJbmRleCIsIGFyaWFPd25zRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgiLCBhcmlhRmxvd1RvRWxlbWVudEF0SW5k
ZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRl
eCIsIGFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2VsZWN0ZWRSb3dBdEluZGV4Iiwgc2VsZWN0ZWRSb3dBdEluZGV4Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAicm93QXRJbmRleCIsIHJvd0F0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJpc0VxdWFsIiwgaXNFcXVhbENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggZjFmMjFiNi4uNjFj
MjEzMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aApAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoKICAgICAvLyBBUklBIHNwZWNpZmljCiAgICAg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKTsK
ICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNp
Z25lZCk7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhcmlhQ29udHJvbHNFbGVtZW50QXRJ
bmRleCh1bnNpZ25lZCk7CiAKICAgICAvLyBBUklBIERyYWcgYW5kIERyb3AKICAgICBib29sIGFy
aWFJc0dyYWJiZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0
ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0
ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCA0MTMxN2JkLi5mNjRiOWYzIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRBdGsuY3BwCkBAIC0xMzMwLDI2ICsxMzMwLDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2hvd01lbnUoKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdElu
ZGV4KHVuc2lnbmVkIGluZGV4KQorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhY2Nlc3NpYmlsaXR5
RWxlbWVudEF0SW5kZXgoQXRrT2JqZWN0KiBlbGVtZW50LCBBdGtSZWxhdGlvblR5cGUgcmVsYXRp
b25UeXBlLCB1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQotewotICAgIHJldHVybiBudWxscHRyOwotfQotCi1B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9F
bGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICBpZiAoIUFUS19JU19PQkpFQ1Qo
bV9lbGVtZW50KSkKKyAgICBpZiAoIUFUS19JU19PQkpFQ1QoZWxlbWVudCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgQXRrUmVsYXRpb25TZXQqIHJlbGF0aW9uU2V0ID0gYXRrX29i
amVjdF9yZWZfcmVsYXRpb25fc2V0KEFUS19PQkpFQ1QobV9lbGVtZW50KSk7CisgICAgQXRrUmVs
YXRpb25TZXQqIHJlbGF0aW9uU2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRpb25fc2V0KGVsZW1l
bnQpOwogICAgIGlmICghcmVsYXRpb25TZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQXRrUmVsYXRpb24qIHJlbGF0aW9uID0gYXRrX3JlbGF0aW9uX3NldF9nZXRfcmVsYXRpb25f
YnlfdHlwZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPKTsKKyAgICBBdGtSZWxh
dGlvbiogcmVsYXRpb24gPSBhdGtfcmVsYXRpb25fc2V0X2dldF9yZWxhdGlvbl9ieV90eXBlKHJl
bGF0aW9uU2V0LCByZWxhdGlvblR5cGUpOwogICAgIGlmICghcmVsYXRpb24pCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCkBAIC0xMzU3LDEyICsxMzQ3LDMyIEBAIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVu
c2lnbmVkCiAgICAgaWYgKCF0YXJnZXRMaXN0IHx8ICF0YXJnZXRMaXN0LT5sZW4gfHwgaW5kZXgg
Pj0gdGFyZ2V0TGlzdC0+bGVuKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorICAgIEF0a09i
amVjdCogdGFyZ2V0ID0gc3RhdGljX2Nhc3Q8QXRrT2JqZWN0Kj4oZ19wdHJfYXJyYXlfaW5kZXgo
dGFyZ2V0TGlzdCwgaW5kZXgpKTsKICAgICBnX29iamVjdF91bnJlZihyZWxhdGlvblNldCk7CiAK
LSAgICBBdGtPYmplY3QqIHRhcmdldCA9IHN0YXRpY19jYXN0PEF0a09iamVjdCo+KGdfcHRyX2Fy
cmF5X2luZGV4KHRhcmdldExpc3QsIGluZGV4KSk7CiAgICAgcmV0dXJuIHRhcmdldCA/IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQodGFyZ2V0KSA6IG51bGxwdHI7CiB9CiAKK0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNp
Z25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdElu
ZGV4KG1fZWxlbWVudCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPLCBpbmRleCk7Cit9CisKK0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxl
bWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlF
bGVtZW50QXRJbmRleChtX2VsZW1lbnQsIEFUS19SRUxBVElPTl9DT05UUk9MTEVSX0ZPUiwgaW5k
ZXgpOworfQorCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICByZXR1cm4gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V2luLmNwcAppbmRleCBlZDE3YzdiLi45MmVkNTM4IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCkBAIC02
OTAsNiArNjkwLDExIEBAIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkCiAgICAgcmV0dXJuIDA7CiB9
CiAKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNv
bnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAppbmRleCBmMDNmZDA3Li45MTcyMDA3IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaApAQCAtMTg3LDYgKzE4Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBBUklBIHNw
ZWNpZmljCiAgICAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBhcmlhT3duc0Vs
ZW1lbnRBdEluZGV4KHVuc2lnbmVkKTsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IGFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCk7CisgICAgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1bnNp
Z25lZCk7CiAKICAgICAvLyBBUklBIERyYWcgYW5kIERyb3AKICAgICBib29sIGFyaWFJc0dyYWJi
ZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aWRsCmluZGV4IGZmYjQ4MGMuLjVlNWZkZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtMTQ0LDYgKzE0NCw3IEBAIGludGVyZmFjZSBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50IHsKIAogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgYXJpYU93
bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50IGFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCBsb25nIGluZGV4KTsK
KyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVu
c2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgLy8gUGFyYW1hdGVyaXplZCBhdHRyaWJ1dGVzLgog
ICAgIERPTVN0cmluZyBwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRBdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9h
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKaW5kZXggZDc4N2RiYy4uYzgyMWNjYSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKQEAgLTY0Miwy
OCArNjQyLDE2IEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkCiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICAv
LyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNF
bGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KQorc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
YWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KEF0a09iamVjdCogZWxlbWVudCwgQXRrUmVsYXRp
b25UeXBlIHJlbGF0aW9uVHlwZSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKCFBVEtfSVNf
T0JKRUNUKG1fZWxlbWVudC5nZXQoKSkpCisgICAgaWYgKCFBVEtfSVNfT0JKRUNUKGVsZW1lbnQp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEF0a1JlbGF0aW9uU2V0KiByZWxhdGlv
blNldCA9IGF0a19vYmplY3RfcmVmX3JlbGF0aW9uX3NldChBVEtfT0JKRUNUKG1fZWxlbWVudC5n
ZXQoKSkpOworICAgIEF0a1JlbGF0aW9uU2V0KiByZWxhdGlvblNldCA9IGF0a19vYmplY3RfcmVm
X3JlbGF0aW9uX3NldChlbGVtZW50KTsKICAgICBpZiAoIXJlbGF0aW9uU2V0KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIEF0a1JlbGF0aW9uKiByZWxhdGlvbiA9IGF0a19yZWxhdGlv
bl9zZXRfZ2V0X3JlbGF0aW9uX2J5X3R5cGUocmVsYXRpb25TZXQsIEFUS19SRUxBVElPTl9GTE9X
U19UTyk7CisgICAgQXRrUmVsYXRpb24qIHJlbGF0aW9uID0gYXRrX3JlbGF0aW9uX3NldF9nZXRf
cmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgcmVsYXRpb25UeXBlKTsKICAgICBpZiAoIXJl
bGF0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNjcxLDEyICs2NTksMzQgQEAg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhRmxvd1RvRWxlbWVudEF0SW4KICAgICBpZiAoIXRhcmdldExpc3QgfHwgIXRhcmdldExp
c3QtPmxlbiB8fCBpbmRleCA+PSB0YXJnZXRMaXN0LT5sZW4pCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCisgICAgQXRrT2JqZWN0KiB0YXJnZXQgPSBzdGF0aWNfY2FzdDxBdGtPYmplY3QqPihn
X3B0cl9hcnJheV9pbmRleCh0YXJnZXRMaXN0LCBpbmRleCkpOwogICAgIGdfb2JqZWN0X3VucmVm
KHJlbGF0aW9uU2V0KTsKIAotICAgIEF0a09iamVjdCogdGFyZ2V0ID0gc3RhdGljX2Nhc3Q8QXRr
T2JqZWN0Kj4oZ19wdHJfYXJyYXlfaW5kZXgodGFyZ2V0TGlzdCwgaW5kZXgpKTsKICAgICByZXR1
cm4gdGFyZ2V0ID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHRhcmdldCkgOiBudWxs
cHRyOwogfQogCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmxpbmtlZFVJRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFP
d25zRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudAorICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdElu
ZGV4KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPLCBpbmRleCk7Cit9CisK
K1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0
dXJuIGFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleChtX2VsZW1lbnQuZ2V0KCksIEFUS19SRUxB
VElPTl9DT05UUk9MTEVSX0ZPUiwgaW5kZXgpOworfQorCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgo
dW5zaWduZWQgaW5kZXgpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggMWZkZmFiMy4uOGM5NjgyZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC00MDQsNiArNDA0
LDEyIEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
K1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBudWxscHRyOworfQorCiBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJv
d0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
Cg==
</data>
<flag name="review"
          id="246673"
          type_id="1"
          status="-"
          setter="mario"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222806</attachid>
            <date>2014-01-31 02:20:13 -0800</date>
            <delta_ts>2014-02-03 01:12:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-aria-controls.patch</filename>
            <type>text/plain</type>
            <size>23530</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MTMwY2NkLi41NmRlY2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDEt
MzEgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gRXhwb3NlIGFyaWEtY29udHJvbHMgdGhyb3VnaCBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9G
T1IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzkw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IHdoZXRoZXIgYXJpYS1jb250cm9scyByZXR1cm5zIGNvcnJlY3QgZWxlbWVudCBhdCB0aGUgZ2l2
ZW4gaW5kZXguCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBw
ZWQgaXQsIG1pc3NpbmcgaW1wbGVtZW50YXRpb24uCisKIDIwMTQtMDEtMzEgIEzDoXN6bMOzIExh
bmfDsyAgPGxhbmdvQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBGaXggdGFibGUgc2l6aW5n
IHdoZW4gJ21heC13aWR0aCcgaXMgdXNlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1jb250cm9scy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ4ZDcwOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2FyaWEtY29udHJvbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Bh
bmVsIDEKK1BhbmVsIDIKK1RoaXMgdGVzdHMgdGhhdCBhcmlhLWNvbnRyb2xzIHJldHVybnMgY29y
cmVjdCBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0YWIxLmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KDApLnN0cmluZ1Zh
bHVlIGlzICdBWFZhbHVlOiBQYW5lbCAxJworUEFTUyB0YWIxLmFyaWFDb250cm9sc0VsZW1lbnRB
dEluZGV4KDEpLnN0cmluZ1ZhbHVlIGlzICdBWFZhbHVlOiBQYW5lbCAyJworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZWU0NGRkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYXJpYS1jb250cm9scy5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IGlkPSJib2R5Ij4KKworPHVsIGlkPSJ0YWJsaXN0IiByb2xlPSJ0YWJsaXN0Ij4KKzxsaSBp
ZD0idGFiMSIgcm9sZT0idGFiIiBhcmlhLWNvbnRyb2xzPSJwYW5lbDEgcGFuZWwyIj48L2xpPgor
PC91bD4KKworPGRpdiBpZD0icGFuZWwxIj5QYW5lbCAxPC9kaXY+Cis8ZGl2IGlkPSJwYW5lbDIi
PlBhbmVsIDI8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IGFyaWEtY29udHJvbHMgcmV0dXJucyBjb3JyZWN0IGVsZW1lbnQgYXQgdGhlIGdpdmVuIGluZGV4
Iik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAg
IHZhciB0YWJsaXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJ0YWJsaXN0Iik7CisgICAgICAgIHZhciB0YWIxID0gdGFibGlzdC5jaGlsZEF0SW5kZXgo
MCk7CisKKyAgICAgICAgc2hvdWxkQmUoInRhYjEuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgo
MCkuc3RyaW5nVmFsdWUiLCAiJ0FYVmFsdWU6IFBhbmVsIDEnIik7CisgICAgICAgIHNob3VsZEJl
KCJ0YWIxLmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KDEpLnN0cmluZ1ZhbHVlIiwgIidBWFZh
bHVlOiBQYW5lbCAyJyIpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjA2OTgyZi4uMGM0
ODk2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUw
LDYgKzUwLDkgQEAgYWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZl
LW9wdGlvbi5odG1sCiAjIGlzSW5kZXRlcm1pbmF0ZSBpcyBub3QgaW1wbGVtZW50ZWQgaW4gbWFj
CiB3ZWJraXQub3JnL2IvMTI1ODU1IGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2VkLW1peGVkLXZh
bHVlLmh0bWwgWyBTa2lwIF0KIAorIyBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCBpcyBub3Qg
aW1wbGVtZW50ZWQgaW4gbWFjCit3ZWJraXQub3JnL2IvMTI3OTA4IGFjY2Vzc2liaWxpdHkvYXJp
YS1jb250cm9scy5odG1sIFsgU2tpcCBdCisKICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0
byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZXJyb3IgcGFnZXMKIGZhc3QvaGlzdG9yeS9iYWNr
LWZvcndhcmQtcmVzZXQtYWZ0ZXItZXJyb3ItaGFuZGxpbmcuaHRtbAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTkxMzI2ZS4uNzg0NGJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAxLTMx
ICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBVEtd
IEV4cG9zZSBhcmlhLWNvbnRyb2xzIHRocm91Z2ggQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9S
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc5MDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBv
biB3M2MsIGFyaWEtY29udHJvbHMgY291bGQgYmUgZXhwb3NlZCB0aHJvdWdoIEFUS19SRUxBVElP
Tl9DT05UUk9MTEVSX0ZPUi4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2FyaWEtY29u
dHJvbHMuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c0FSSUFD
b250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhQ29u
dHJvbHNFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnN1cHBvcnRzQVJJQUZsb3dUbyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQ29udHJvbHNFbGVtZW50cyk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAg
ICAoc2V0QXRrUmVsYXRpb25TZXRGcm9tQ29yZU9iamVjdCk6CisKIDIwMTQtMDEtMzAgIEzDoXN6
bMOzIExhbmfDsyAgPGxhbmdvQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbQ1NTIEdyaWQg
TGF5b3V0XSBEbyBsb2cobikgc2VhcmNoIGluIHRoZSBuYW1lZCBsaW5lIHZlY3RvcnMgd2hlbiBw
b3NpdGlvbmluZyBuYW1lZCBsaW5lIHNwYW5zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzOTBhZTJmLi4yNmUwY2M0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaApAQCAtNTU1LDYgKzU1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXJpYUZs
b3dUb0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IHsgfQogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEZXNjcmliZWRCeSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFyaWFEZXNjcmliZWRCeUVsZW1lbnRzKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0FSSUFDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IGFyaWFDb250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0
IHsgfQogICAgIHZpcnR1YWwgYm9vbCBhcmlhSGFzUG9wdXAoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBhcmlhUHJlc3NlZElzUHJlc2VudCgpIGNvbnN0OwogICAg
IGJvb2wgYXJpYUlzTXVsdGlsaW5lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBi
MzdkMDI1Li44MGMyMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEwNDEsNiArMTA0MSwx
NiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFEZXNjcmliZWRCeUVsZW1l
bnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlYwogICAgIGFyaWFFbGVtZW50c0Zyb21BdHRyaWJ1
dGUoYXJpYURlc2NyaWJlZEJ5LCBhcmlhX2Rlc2NyaWJlZGJ5QXR0cik7CiB9CiAKK2Jvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNBUklBQ29udHJvbHMoKSBjb25zdAorewor
ICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFyaWFfY29udHJvbHNBdHRyKS5pc0VtcHR5KCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUNvbnRyb2xzRWxlbWVudHMo
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBhcmlhQ29udHJvbHMpIGNvbnN0Cit7CisgICAg
YXJpYUVsZW1lbnRzRnJvbUF0dHJpYnV0ZShhcmlhQ29udHJvbHMsIGFyaWFfY29udHJvbHNBdHRy
KTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFEcm9w
cGluZygpIGNvbnN0IAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZHJvcEVmZmVjdCA9IGdl
dEF0dHJpYnV0ZShhcmlhX2Ryb3BlZmZlY3RBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzVh
ZDJkMi4uY2RmZmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTE4Miw2ICsxODIsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGFyaWFGbG93VG9FbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNB
UklBRGVzY3JpYmVkQnkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYXJpYURl
c2NyaWJlZEJ5RWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQUNvbnRyb2xzKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFyaWFDb250cm9sc0VsZW1lbnRzKEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBhcmlh
SGFzUG9wdXAoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FS
SUFEcm9wcGluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3Bw
CmluZGV4IGVjZTU5Y2MuLmI0M2VjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAK
QEAgLTI1NCw2ICsyNTQsMTUgQEAgc3RhdGljIHZvaWQgc2V0QXRrUmVsYXRpb25TZXRGcm9tQ29y
ZU9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGsKICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBhY2Nlc3NpYmlsaXR5T2JqZWN0IDogYXJpYURlc2NyaWJlZEJ5RWxlbWVu
dHMpCiAgICAgICAgICAgICBhdGtfcmVsYXRpb25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJl
bGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fREVTQ1JJQkVEX0JZLCBhY2Nlc3NpYmlsaXR5T2JqZWN0
LT53cmFwcGVyKCkpOwogICAgIH0KKworICAgIC8vIENoZWNrIHdoZXRoZXIgb2JqZWN0IHN1cHBv
cnRzIGFyaWEtY29udHJvbHMuIEl0IHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGVsZW1lbnRz
IHRoYXQgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGN1cnJlbnQgb2JqZWN0LgorICAgIGlmIChjb3Jl
T2JqZWN0LT5zdXBwb3J0c0FSSUFDb250cm9scygpKSB7CisgICAgICAgIHJlbW92ZUF0a1JlbGF0
aW9uQnlUeXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9GT1IpOworICAg
ICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgYXJp
YUNvbnRyb2xzOworICAgICAgICBjb3JlT2JqZWN0LT5hcmlhQ29udHJvbHNFbGVtZW50cyhhcmlh
Q29udHJvbHMpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjY2Vzc2liaWxpdHlPYmplY3Qg
OiBhcmlhQ29udHJvbHMpCisgICAgICAgICAgICBhdGtfcmVsYXRpb25fc2V0X2FkZF9yZWxhdGlv
bl9ieV90eXBlKHJlbGF0aW9uU2V0LCBBVEtfUkVMQVRJT05fQ09OVFJPTExFUl9GT1IsIGFjY2Vz
c2liaWxpdHlPYmplY3QtPndyYXBwZXIoKSk7CisgICAgfQogfQogCiBzdGF0aWMgZ3BvaW50ZXIg
d2Via2l0QWNjZXNzaWJsZVBhcmVudENsYXNzID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZDBiYjAzLi5hN2ZlYTNjIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMTQtMDEtMzEgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0FUS10gRXhwb3NlIGFyaWEtY29udHJvbHMgdGhyb3VnaCBBVEtfUkVMQVRJT05fQ09O
VFJPTExFUl9GT1IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBib3RoIGluIFdLVFIgYW5kIERSVCBz
byB0aGF0IGFyaWEtY29udHJvbHMgc3VwcG9ydCBjb3VsZCBiZSB0ZXN0ZWQgcHJvcGVybHkuCisg
ICAgICAgIEFkZGVkIGVtcHR5IHN0dWJzIHRvIG5vdCBicmVhayBtYWMgYnVpbGRzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAg
IChhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChhY2Nlc3NpYmlsaXR5RWxlbWVu
dEF0SW5kZXgpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93
QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1l
bnRBdEluZGV4KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9F
bGVtZW50QXRJbmRleCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29u
dHJvbHNFbGVtZW50QXRJbmRleCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAg
IChXVFI6OmFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmxpbmtlZFVJRWxlbWVudEF0SW5kZXgpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxl
bWVudEF0SW5kZXgpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJv
bHNFbGVtZW50QXRJbmRleCk6CisKIDIwMTQtMDEtMzAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtDTWFrZV0gQWRkIHN1cHBvcnQgZm9y
IGJ1aWxkaW5nIGFnYWluc3QgR1RLKyAyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDc5M2IzMTAuLjk3ZTdhOTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zNjksNiAr
MzY5LDE1IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGFyaWFGbG93VG9FbGVtZW50QXRJbmRleENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29udGV4dCwgdG9BWEVs
ZW1lbnQodGhpc09iamVjdCktPmFyaWFGbG93VG9FbGVtZW50QXRJbmRleChpbmRleE51bWJlcikp
OwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBhcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpbnQgaW5kZXhOdW1iZXIg
PSAwOworICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpCisgICAgICAgIGluZGV4TnVtYmVyID0g
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKworICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5hcmlhQ29udHJvbHNFbGVtZW50
QXRJbmRleChpbmRleE51bWJlcikpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RlZFJv
d0F0SW5kZXhDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50
IGluZGV4TnVtYmVyID0gMDsKQEAgLTE1MTksNiArMTUyOCw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgImRpc2Nsb3NlZFJvd0F0
SW5kZXgiLCBkaXNjbG9zZWRSb3dBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
YXJpYU93bnNFbGVtZW50QXRJbmRleCIsIGFyaWFPd25zRWxlbWVudEF0SW5kZXhDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgiLCBhcmlhRmxvd1Rv
RWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhcmlhQ29udHJvbHNF
bGVtZW50QXRJbmRleCIsIGFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2VsZWN0ZWRSb3dBdEluZGV4Iiwgc2VsZWN0ZWRSb3dBdEluZGV4Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicm93QXRJbmRleCIsIHJvd0F0SW5kZXhDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJpc0VxdWFsIiwgaXNFcXVhbENhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXgg
ZjFmMjFiNi4uNjFjMjEzMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaApAQCAtMTkxLDYgKzE5MSw3IEBAIHB1YmxpYzoKICAgICAvLyBBUklBIHNw
ZWNpZmljCiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhcmlhT3duc0VsZW1lbnRBdEluZGV4
KHVuc2lnbmVkKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGFyaWFGbG93VG9FbGVtZW50
QXRJbmRleCh1bnNpZ25lZCk7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhcmlhQ29udHJv
bHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCk7CiAKICAgICAvLyBBUklBIERyYWcgYW5kIERyb3AK
ICAgICBib29sIGFyaWFJc0dyYWJiZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCA0MTMxN2Jk
Li5mNjRiOWYzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC0xMzMwLDI2ICsxMzMwLDE2IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnUoKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
IH0KIAotQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNj
bG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBh
Y2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXgoQXRrT2JqZWN0KiBlbGVtZW50LCBBdGtSZWxhdGlv
blR5cGUgcmVsYXRpb25UeXBlLCB1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQotewotICAgIHJldHVybiBudWxs
cHRyOwotfQotCi1BY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICBpZiAoIUFU
S19JU19PQkpFQ1QobV9lbGVtZW50KSkKKyAgICBpZiAoIUFUS19JU19PQkpFQ1QoZWxlbWVudCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQXRrUmVsYXRpb25TZXQqIHJlbGF0aW9u
U2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRpb25fc2V0KEFUS19PQkpFQ1QobV9lbGVtZW50KSk7
CisgICAgQXRrUmVsYXRpb25TZXQqIHJlbGF0aW9uU2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRp
b25fc2V0KGVsZW1lbnQpOwogICAgIGlmICghcmVsYXRpb25TZXQpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgQXRrUmVsYXRpb24qIHJlbGF0aW9uID0gYXRrX3JlbGF0aW9uX3NldF9n
ZXRfcmVsYXRpb25fYnlfdHlwZShyZWxhdGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPKTsK
KyAgICBBdGtSZWxhdGlvbiogcmVsYXRpb24gPSBhdGtfcmVsYXRpb25fc2V0X2dldF9yZWxhdGlv
bl9ieV90eXBlKHJlbGF0aW9uU2V0LCByZWxhdGlvblR5cGUpOwogICAgIGlmICghcmVsYXRpb24p
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0xMzU3LDEyICsxMzQ3LDMyIEBAIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkCiAgICAgaWYgKCF0YXJnZXRMaXN0IHx8ICF0YXJnZXRMaXN0LT5s
ZW4gfHwgaW5kZXggPj0gdGFyZ2V0TGlzdC0+bGVuKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAorICAgIEF0a09iamVjdCogdGFyZ2V0ID0gc3RhdGljX2Nhc3Q8QXRrT2JqZWN0Kj4oZ19wdHJf
YXJyYXlfaW5kZXgodGFyZ2V0TGlzdCwgaW5kZXgpKTsKICAgICBnX29iamVjdF91bnJlZihyZWxh
dGlvblNldCk7CiAKLSAgICBBdGtPYmplY3QqIHRhcmdldCA9IHN0YXRpY19jYXN0PEF0a09iamVj
dCo+KGdfcHRyX2FycmF5X2luZGV4KHRhcmdldExpc3QsIGluZGV4KSk7CiAgICAgcmV0dXJuIHRh
cmdldCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQodGFyZ2V0KSA6IG51bGxwdHI7CiB9CiAKK0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93
QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9F
bGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0
eUVsZW1lbnRBdEluZGV4KG1fZWxlbWVudCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPLCBpbmRleCk7
Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJp
YUNvbnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIGFj
Y2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleChtX2VsZW1lbnQsIEFUS19SRUxBVElPTl9DT05UUk9M
TEVSX0ZPUiwgaW5kZXgpOworfQorCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggOGU3ZWRhYy4uMGVmZGRhYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW0KQEAgLTI2Miw2ICsyNjIsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQKICAgICByZXR1
cm4gMDsKIH0KIAorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1
cm4gMDsKK30KKwogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewogICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQppbmRleCA3YmI5M2VhLi40NTA0OTcwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMzQyLDYgKzM0
MiwxMiBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFy
aWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZAogICAgIHJldHVybiBudWxscHRyOwogfQog
CitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFDb250
cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewog
ICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCmluZGV4IGVkMTdjN2IuLjky
ZWQ1MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAKQEAgLTY5MCw2ICs2OTAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgo
dW5zaWduZWQKICAgICByZXR1cm4gMDsKIH0KIAorQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBp
bmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30KKwogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGYwM2ZkMDcu
LjkxNzIwMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0xODcsNiArMTg3LDcg
QEAgcHVibGljOgogICAgIC8vIEFSSUEgc3BlY2lmaWMKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IGFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5zaWduZWQpOwogICAgIFBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4
KHVuc2lnbmVkKTsKKyAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGFyaWFD
b250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKTsKIAogICAgIC8vIEFSSUEgRHJhZyBhbmQg
RHJvcAogICAgIGJvb2wgYXJpYUlzR3JhYmJlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggZmZiNDgwYy4uNWU1ZmRmMSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCkBAIC0xNDQs
NiArMTQ0LDcgQEAgaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogCiAgICAgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBhcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgYXJpYUZsb3dUb0VsZW1lbnRBdElu
ZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgYXJp
YUNvbnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAvLyBQ
YXJhbWF0ZXJpemVkIGF0dHJpYnV0ZXMuCiAgICAgRE9NU3RyaW5nIHBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGVOYW1lcygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNw
cAppbmRleCBkNzg3ZGJjLi5jODIxY2NhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50QXRrLmNwcApAQCAtNjQyLDI4ICs2NDIsMTYgQEAgUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXgodW5z
aWduZWQKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4
KHVuc2lnbmVkIGluZGV4KQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQot
ewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCitzdGF0aWMgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXgoQXRr
T2JqZWN0KiBlbGVtZW50LCBBdGtSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlLCB1bnNpZ25lZCBp
bmRleCkKIHsKLSAgICBpZiAoIUFUS19JU19PQkpFQ1QobV9lbGVtZW50LmdldCgpKSkKKyAgICBp
ZiAoIUFUS19JU19PQkpFQ1QoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQXRrUmVsYXRpb25TZXQqIHJlbGF0aW9uU2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRpb25f
c2V0KEFUS19PQkpFQ1QobV9lbGVtZW50LmdldCgpKSk7CisgICAgQXRrUmVsYXRpb25TZXQqIHJl
bGF0aW9uU2V0ID0gYXRrX29iamVjdF9yZWZfcmVsYXRpb25fc2V0KGVsZW1lbnQpOwogICAgIGlm
ICghcmVsYXRpb25TZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQXRrUmVsYXRp
b24qIHJlbGF0aW9uID0gYXRrX3JlbGF0aW9uX3NldF9nZXRfcmVsYXRpb25fYnlfdHlwZShyZWxh
dGlvblNldCwgQVRLX1JFTEFUSU9OX0ZMT1dTX1RPKTsKKyAgICBBdGtSZWxhdGlvbiogcmVsYXRp
b24gPSBhdGtfcmVsYXRpb25fc2V0X2dldF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0LCBy
ZWxhdGlvblR5cGUpOwogICAgIGlmICghcmVsYXRpb24pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCkBAIC02NzEsMTIgKzY1OSwzNCBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbgogICAgIGlm
ICghdGFyZ2V0TGlzdCB8fCAhdGFyZ2V0TGlzdC0+bGVuIHx8IGluZGV4ID49IHRhcmdldExpc3Qt
PmxlbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBBdGtPYmplY3QqIHRhcmdldCA9
IHN0YXRpY19jYXN0PEF0a09iamVjdCo+KGdfcHRyX2FycmF5X2luZGV4KHRhcmdldExpc3QsIGlu
ZGV4KSk7CiAgICAgZ19vYmplY3RfdW5yZWYocmVsYXRpb25TZXQpOwogCi0gICAgQXRrT2JqZWN0
KiB0YXJnZXQgPSBzdGF0aWNfY2FzdDxBdGtPYmplY3QqPihnX3B0cl9hcnJheV9pbmRleCh0YXJn
ZXRMaXN0LCBpbmRleCkpOwogICAgIHJldHVybiB0YXJnZXQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjcmVhdGUodGFyZ2V0KSA6IG51bGxwdHI7CiB9CiAKK1Bhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJ
bmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVy
biBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXgobV9lbGVtZW50LmdldCgpLCBBVEtfUkVMQVRJ
T05fRkxPV1NfVE8sIGluZGV4KTsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1
bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4
KG1fZWxlbWVudC5nZXQoKSwgQVRLX1JFTEFUSU9OX0NPTlRST0xMRVJfRk9SLCBpbmRleCk7Cit9
CisKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICAvLyBGSVhN
RTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpp
bmRleCA4OTdlOWJmLi5iOGVjZmQ5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KQEAgLTEyMyw2ICsxMjMsMTEgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW4K
ICAgICByZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25l
ZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVu
c2lnbmVkIGluZGV4KQogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0KaW5kZXggMWZkZmFiMy4uOGM5NjgyZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC00MDQsNiArNDA0LDEyIEBAIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJp
YUZsb3dUb0VsZW1lbnRBdEluCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK1Bhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRy
b2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudAorICAgIHJldHVybiBudWxscHRyOworfQorCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5z
aWduZWQgaW5kZXgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>