<?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>14389</bug_id>
          
          <creation_ts>2007-06-25 08:46:44 -0700</creation_ts>
          <short_desc>[S60] Widget Menu API needs refinement</short_desc>
          <delta_ts>2008-04-09 11:39:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sornalatha Rathnasamy">sornalatha.rathnasamy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>6336</commentid>
    <comment_count>0</comment_count>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-06-25 08:46:44 -0700</bug_when>
    <thetext>TSW Id : ID:  SYAI-73AS6K 

- Preferences - Key/Value pair implementation must be optimized
- Ensure that only unique menu items APPENDED. Throw exception when new MenuItem call contains same id/text
- Setting the callback after appending the menu item fails
- Menu object is singleton. So no need for new menu()
- Change menu item append behaviour to LIFO
- Fix onshow, onhide behaviour
- int value for set preference for key doesnt work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6315</commentid>
    <comment_count>1</comment_count>
      <attachid>15231</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-06-25 11:28:32 -0700</bug_when>
    <thetext>Created attachment 15231
menu api and preferences</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6320</commentid>
    <comment_count>2</comment_count>
      <attachid>15232</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-06-25 12:10:55 -0700</bug_when>
    <thetext>Created attachment 15232
3.2 patch for menu api and preferences enhancement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6323</commentid>
    <comment_count>3</comment_count>
      <attachid>15232</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-06-25 13:07:22 -0700</bug_when>
    <thetext>Comment on attachment 15232
3.2 patch for menu api and preferences enhancement

widgetExtension.cpp line#860
&gt;if ( newItem &amp;&amp; oldItem &amp;&amp; newItem-&gt;Text().Compare(newItem-&gt;Text()) != 0 )
shouldn&apos;t it be something like if ( newItem &amp;&amp; oldItem &amp;&amp; newItem-&gt;Text().CompareF(oldItem-&gt;Text()) == 0 ) ?

WidgetPreferences.cpp 
- remove tabs, please.
- line# 225, 251: missing CleanupStakc: PushL
- line# 436: use allocL() instead
- linr# 444: iValue = null; is missing and use allocL() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6222</commentid>
    <comment_count>4</comment_count>
      <attachid>15245</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-06-26 07:33:14 -0700</bug_when>
    <thetext>Created attachment 15245
3.2 patch for menu api enhancement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6083</commentid>
    <comment_count>5</comment_count>
      <attachid>15245</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-06-27 08:01:14 -0700</bug_when>
    <thetext>Comment on attachment 15245
3.2 patch for menu api enhancement

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6084</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2007-06-27 08:01:54 -0700</bug_when>
    <thetext>r23814 -&gt; ccb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5642</commentid>
    <comment_count>7</comment_count>
      <attachid>15376</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-07-03 13:37:23 -0700</bug_when>
    <thetext>Created attachment 15376
migrate fixes for SYAI-73AS6K  and SYAI-73ARXK to 3.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5056</commentid>
    <comment_count>8</comment_count>
      <attachid>15376</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-07-10 13:10:18 -0700</bug_when>
    <thetext>Comment on attachment 15376
migrate fixes for SYAI-73AS6K  and SYAI-73ARXK to 3.1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5057</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2007-07-10 13:10:53 -0700</bug_when>
    <thetext>r24160 -&gt; 3.1m</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4929</commentid>
    <comment_count>10</comment_count>
      <attachid>15491</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-07-12 13:02:56 -0700</bug_when>
    <thetext>Created attachment 15491
3.1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4923</commentid>
    <comment_count>11</comment_count>
      <attachid>15494</attachid>
    <who name="Sornalatha Rathnasamy">sornalatha.rathnasamy</who>
    <bug_when>2007-07-12 13:20:38 -0700</bug_when>
    <thetext>Created attachment 15494
3.1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4920</commentid>
    <comment_count>12</comment_count>
      <attachid>15494</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-07-12 13:41:37 -0700</bug_when>
    <thetext>Comment on attachment 15494
3.1 patch

r=me. the change is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76964</commentid>
    <comment_count>13</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:40 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15231</attachid>
            <date>2007-06-25 11:28:32 -0700</date>
            <delta_ts>2007-06-25 12:10:55 -0700</delta_ts>
            <desc>menu api and preferences</desc>
            <filename>widget_menu_enh_3.2.patch</filename>
            <type>text/plain</type>
            <size>25316</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCShyZXZpc2lv
biAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCSh3
b3JraW5nIGNvcHkpDQpAQCAtMTg5LDkgKzE4OSw5IEBADQogICAgICAgICAqIEBwYXJhbSB0ZXh0
IGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhlIG1haW4gYXJlYSBvZiB0aGUgbWVudSBpdGVtDQogICAg
ICAgICAqIEBwYXJhbSBJRCBvZiB0aGUgY29tbWFuZCB0byBpc3N1ZSB3aGVuIHRoZSBtZW51IGl0
ZW0gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIHBhcmVu
dCBtZW51IGl0ZW0NCi0gICAgICAgICogQHJldHVybiBub25lDQorICAgICAgICAqIEByZXR1cm4g
RXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAgICAgIHZvaWQgQWRkT3B0aW9uc01lbnVJdGVt
KCBjb25zdCBURGVzQyYgYVRleHQsIFRJbnQgYUNtZElkLCBUSW50IGFQYXJlbnRDbWRJZCwgdm9p
ZCogb2JqICk7DQorICAgICAgICBUSW50IEFkZE9wdGlvbnNNZW51SXRlbSggY29uc3QgVERlc0Mm
IGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50Q21kSWQsIHZvaWQqIG9iaiApOw0KIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIE1ldGhvZCBTZXRSaWdodFNvZnRLZXlMYWJlbA0KQEAg
LTIyNCw5ICsyMjQsOSBAQA0KICAgICAgICAgKiBAcGFyYW0gdGV4dC9sYWJlbCBmb3IgdGhlIG5l
dyBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIG5ldyBtZW51
IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGRpbW1lZCBzdGF0dXMNCi0gICAgICAgICogQHJldHVy
biBub25lDQorICAgICAgICAqIEByZXR1cm4gRXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAg
ICAgIHZvaWQgUmVwbGFjZU1lbnVJdGVtKCBUSW50IG9sZENtZElkLCBjb25zdCBURGVzQyYgbmV3
VGV4dCwgDQorICAgICAgICBUSW50IFJlcGxhY2VNZW51SXRlbSggVEludCBvbGRDbWRJZCwgY29u
c3QgVERlc0MmIG5ld1RleHQsIA0KICAgICAgICAgICAgIFRJbnQgbmV3Q21kSWQsIFRJbnQgbmV3
RGltbWVkICk7DQogDQogICAgICAgICAvKioNCkBAIC01NDIsOSArNTQyLDkgQEANCiAgICAgICAg
ICogQHNpbmNlIDMuMg0KICAgICAgICAgKiBAcGFyYW0gcGFyZW50IG1lbnUgaXRlbQ0KICAgICAg
ICAgKiBAcGFyYW0gbWVudSBpdGVtIHRvIGJlIGluc2VydGVkDQotICAgICAgICAqIEByZXR1cm4g
VEJvb2wNCisgICAgICAgICogQHJldHVybiBlcnJvciBjb2RlDQogICAgICAgICAqLw0KLSAgICAg
ICAgVEJvb2wgQXBwZW5kKCBDTWVudUl0ZW0qIHJvb3QsIENNZW51SXRlbSogaXRlbSApOw0KKyAg
ICAgICAgVEludCBBcHBlbmQoIENNZW51SXRlbSogcm9vdCwgQ01lbnVJdGVtKiBpdGVtICk7DQog
DQogICAgICAgICAvKg0KICAgICAgICAgKiBNZXRob2QgQXBwZW5kU2libGluZw0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjM3
NjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRnZXRQcmVmZXJlbmNlcy5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNTcsNyArNTcsNzcgQEANCiBjbGFzcyBDV2lkZ2V0RXh0ZW5zaW9uOw0K
IA0KIC8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQogLyoqDQorKiAgQ1ByZWZFbGVtZW50DQorKg0K
KyogIEBsaWIgd2lkZ2V0ZW5naW5lLmRsbA0KKyogIEBzaW5jZSAzLjINCisqLw0KK2NsYXNzIENQ
cmVmRWxlbWVudCA6IHB1YmxpYyBDQmFzZQ0KKwl7DQorcHVibGljIDoNCisgICAgLyoqDQorICAg
ICogQ29uc3RydWN0b3IuDQorICAgICovDQorCUNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoqDQor
ICAgICogRGVzdHJ1Y3Rvci4NCisgICAgKi8NCisJfkNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoq
DQorCSogU2V0VmFsdWVMDQorICAgICogU2V0IHZhbHVlIGZvciBhIHByZWZlcmVuY2UNCisgICAg
KiBAcGFyYW0gY29uc3QgVERlc0MmIGFWYWx1ZSAtIFRoZSB2YWx1ZSB0byBiZSBzZXQNCisgICAg
KiBAcmV0dXJuIG5vbmUNCisgICAgKi8NCisJdm9pZCBTZXRWYWx1ZUwoIGNvbnN0IFREZXNDJiBh
VmFsdWUgKTsNCisJDQorICAgIC8qKg0KKwkqIFNldFZhbHVlU2l6ZQ0KKyAgICAqIFNldCBsZW5n
dGggb2YgdmFsdWUgDQorICAgICogQHBhcmFtIGNvbnN0IFRJbnQgYVNpemUgLSBUaGUgbGVuZ3Ro
IHRvIGJlIHNldA0KKyAgICAqIEByZXR1cm4gbm9uZQ0KKyAgICAqLw0KKwl2b2lkIFNldFZhbHVl
U2l6ZSggY29uc3QgVEludCBhU2l6ZSApDQorCSAgICB7DQorCSAgICBpVmFsdWVTaXplID0gYVNp
emU7DQorCSAgICB9DQorCSAgICANCisgICAgLyoqDQorCSogR2V0VmFsdWUNCisgICAgKiBHZXQg
dmFsdWUgZm9yIGEgcHJlZmVyZW5jZQ0KKyAgICAqIEBwYXJhbSBub25lDQorICAgICogQHJldHVy
biBjb25zdCBURGVzQyYgLSB2YWx1ZSBmb3IgdGhlIHByZWZlcmVuY2UNCisgICAgKi8JICAgIA0K
Kwljb25zdCBURGVzQyYgVmFsdWUoKSBjb25zdA0KKwkgICAgew0KKwkgICAgaWYgKCBpVmFsdWUg
KSANCisJICAgICAgICByZXR1cm4gKmlWYWx1ZTsNCisgICAgICAgIGVsc2UgDQorICAgICAgICAg
ICAgcmV0dXJuIEtOdWxsRGVzQygpOw0KKwkgICAgfQ0KKwkgICAgDQorICAgIC8qKg0KKwkqIEdl
dFZhbHVlU2l6ZQ0KKyAgICAqIEdldCBsZW5ndGggb2YgdmFsdWUNCisgICAgKiBAcGFyYW0gbm9u
ZQ0KKyAgICAqIEByZXR1cm4gVEludCAtIGxlbmd0aCBvZiB2YWx1ZSBmb3IgdGhlIHByZWZlcmVu
Y2UNCisgICAgKi8JICAgIA0KKwlUSW50IFZhbHVlU2l6ZSgpIGNvbnN0DQorCSAgICB7DQorCSAg
ICByZXR1cm4gaVZhbHVlU2l6ZTsNCisJICAgIH0NCisJICAgIA0KK3ByaXZhdGUgOg0KKwlIQnVm
QyogIGlWYWx1ZTsgICAgIC8vIHZhbHVlIG9mIHRoZSBwcmVmZXJlbmNlDQorCVRJbnQgICAgaVZh
bHVlU2l6ZTsgLy8gbGVuZ3RoIG9mIHRoZSB2YWx1ZQ0KKwl9Ow0KKw0KKw0KKy8qKg0KICogIENX
aWRnZXRQcmVmZXJlbmNlcw0KICoNCiAqICBAbGliIHdpZGdldGVuZ2luZS5kbGwNCkBAIC02Nywz
MiArMTM3LDU1IEBADQogICAgIHsNCiANCiAgICAgcHVibGljOg0KLSAgICAgICAgc3RhdGljIENX
aWRnZXRQcmVmZXJlbmNlcyogTmV3TChDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
KTsNCi0gICAgICAgIHN0YXRpYyBDV2lkZ2V0UHJlZmVyZW5jZXMqIE5ld0xDKENXaWRnZXRFeHRl
bnNpb24mIGFXaWRnZXRFeHRlbnNpb24pOw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFR3by1w
aGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENXaWRnZXRQ
cmVmZXJlbmNlcyogTmV3TCggQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVuc2lvbiApOw0K
KyAgICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyogTmV3TEMoIENXaWRnZXRFeHRlbnNp
b24mIGFXaWRnZXRFeHRlbnNpb24gKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KICAgICAgICAgfkNXaWRnZXRQcmVmZXJlbmNl
cygpOw0KIA0KICAgICBwdWJsaWM6DQorICAgICAgICAvKioNCisgICAgICAgICogTG9hZCBwcmVm
ZXJlbmNlcyBmcm9tIHBlcnNpc3RlbnQgc3RvcmFnZQ0KKyAgICAgICAgKi8NCiAgICAgICAgIHZv
aWQgTG9hZEwoKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNhdmUgcHJl
ZmVyZW5jZXMgdG8gcGVyc2lzdGVudCBzdG9yYWdlDQorICAgICAgICAqLw0KICAgICAgICAgdm9p
ZCBTYXZlTCgpOw0KLSAgICAgICAgVEludCBQcmVmZXJlbmNlTChjb25zdCBURGVzQyYgYU5hbWUs
IFRQdHJDJiBhVmFsdWUpOw0KLSAgICAgICAgdm9pZCBTZXRQcmVmZXJlbmNlTChjb25zdCBURGVz
QyYgYU5hbWUsIGNvbnN0IFREZXNDJiBhVmFsdWUpOw0KKyAgICAgICAgDQorICAgICAgICAvKioN
CisgICAgICAgICogR2V0IHByZWZlcmVuY2UgZm9yIGEgcGFydGljdWxhciBrZXkNCisgICAgICAg
ICovDQorICAgICAgICBUSW50IFByZWZlcmVuY2VMKCBjb25zdCBURGVzQyYgYU5hbWUsIFRQdHJD
JiBhVmFsdWUgKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNldCBwcmVm
ZXJlbmNlIGZvciBhIHBhcnRpY3VsYXIga2V5DQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBT
ZXRQcmVmZXJlbmNlTCggY29uc3QgVERlc0MmIGFOYW1lLCBjb25zdCBURGVzQyYgYVZhbHVlICk7
ICAgDQogDQogICAgIHByb3RlY3RlZDoNCi0gICAgICAgIHZvaWQgRW1wdHkoKTsNCi0gICAgICAg
IHZvaWQgQ3JlYXRlRmlsZVBhdGhMKCk7DQotICAgICAgICBIQnVmQyogTWFrZUtleUxDKGNvbnN0
IFREZXNDJiBhTmFtZSk7DQotDQotICAgIHByb3RlY3RlZDoNCi0gICAgICAgIENXaWRnZXRQcmVm
ZXJlbmNlcyhDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9uKTsNCisgICAgICAgIC8q
Kg0KKyAgICAgICAgKiBDKysgQ29uc3RydWN0b3IgICAgICAgDQorICAgICAgICAqLw0KKyAgICAg
ICAgQ1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
ICk7DQorICAgICAgICANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBTeW1iaWFuIDJuZCBwaGFz
ZSBjb25zdHJ1Y3Rvcg0KKyAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQ29uc3RydWN0TCgpOw0K
IA0KICAgICBwcml2YXRlOg0KLSAgICAgICAgUlB0ckhhc2hNYXA8VERlc0MsVERlc0M+IGlNYXA7
DQotICAgICAgICBSUHRySGFzaE1hcDxURGVzQyxUSW50PiBpU2l6ZU1hcDsNCisgICAgICAgIFJQ
dHJIYXNoTWFwPFREZXNDLENQcmVmRWxlbWVudD4gaVByZWZlcmVuY2VzOw0KICAgICAgICAgSEJ1
ZkMqIGlGaWxlUGF0aDsNCiAgICAgICAgIENXaWRnZXRFeHRlbnNpb24qIGlXaWRnZXRFeHRlbnNp
b247IC8vbm90IG93bmVkDQogICAgICAgICBIQnVmQyogaUJhc2VQYXRoOw0KLQ0KICAgICB9Ow0K
LQ0KKyAgICANCisgICAgDQogI2VuZGlmDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9X
aWRnZXRFeHRlbnNpb24uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XaWRnZXRFeHRlbnNpb24uY3BwCShyZXZpc2lvbiAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00MTIsNyAr
NDEyLDkgQEANCiAgICAgICAgICAgICBwYXJlbnROb2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJv
b3QsIHBhcmVudENtZElkICk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgaWYgKCBwYXJlbnRO
b2RlICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAgbm9kZSA9IHBhcmVudE5vZGUtPkZp
cnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgIGVsc2UNCiAgICAg
ICAgICB7DQpAQCAtNDI4LDcgKzQzMCw5IEBADQogICAgICAgICAgICAgICAgICAwLCBhTWVudVBh
bmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpIC0gMiApOw0KICAgICAgICAgICAgICB9DQogICAgICAg
ICAgaWYgKCBpTWVudVJvb3QgKQ0KLSAgICAgICAgICAgICBub2RlID0gaU1lbnVSb290LT5GaXJz
dENoaWxkKCk7DQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIG5vZGUgPSBpTWVudVJvb3Qt
PkZpcnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogDQogICAgIGlmICgg
bm9kZSApDQpAQCAtNDYyLDEyICs0NjYsMTggQEANCiAgICAgaWYgKCBhTm9kZS0+Rmlyc3RDaGls
ZCgpICkNCiAgICAgICAgIHsNCiAgICAgICAgIGlmICggaVJlc291cmNlSWQgPiBSX0NBU0NBREVf
TUVOVV8xICsgS01heE9wdGlvbnNNZW51ICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAg
bWVudURhdGEuaUNhc2NhZGVJZCA9IDA7DQorICAgICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gaVJlc291
cmNlSWQ7DQorICAgICAgICAgICAgfSAgICAgICAgICAgIA0KICAgICAgICAgfQ0KICAgICBlbHNl
DQorICAgICAgICB7DQogICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gMDsNCisgICAgICAg
IH0gICAgICAgIA0KIA0KICAgICBtZW51RGF0YS5pRmxhZ3MgPSAwOw0KICAgICBtZW51RGF0YS5p
VGV4dCA9IGFOb2RlLT5UZXh0KCk7DQpAQCAtNDc3LDcgKzQ4Nyw3IEBADQogICAgIGVudHJ5LnBh
cmVudENtZElkID0gYU5vZGUtPkNtZElkKCk7DQogICAgIGlDYXNjYWRlQXJyLkFwcGVuZCggZW50
cnkgKTsNCiANCi0gICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIDAgKTsN
CisgICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIGFNZW51UGFuZS5OdW1i
ZXJPZkl0ZW1zSW5QYW5lKCkgKTsNCiAgICAgYU1lbnVQYW5lLlNldEl0ZW1EaW1tZWQoIGFOb2Rl
LT5DbWRJZCgpK0tNZW51SXRlbUNvbW1hbmRJZEJhc2UsIGFOb2RlLT5EaW1tZWQoKSApOw0KICAg
ICB9DQogDQpAQCAtNjU2LDIxICs2NjYsNDAgQEANCiAvLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQogLy8NCi12b2lkIENXaWRnZXRFeHRlbnNpb246OkFkZE9wdGlvbnNNZW51SXRlbSgNCitU
SW50IENXaWRnZXRFeHRlbnNpb246OkFkZE9wdGlvbnNNZW51SXRlbSggDQogICAgIGNvbnN0IFRE
ZXNDJiBhVGV4dCwgVEludCBhQ21kSWQsIFRJbnQgYVBhcmVudElkLCB2b2lkKiBhT2JqICkNCi0g
ICAgew0KLSAgICBpZiAoICFpTWVudVJvb3QgKQ0KLSAgICAgICAgew0KKyAgICB7ICAgDQorICAg
IGlmICggIWlNZW51Um9vdCApIA0KKyAgICAgICAgeyANCiAgICAgICAgIGlNZW51Um9vdCA9IENN
ZW51SXRlbTo6TmV3TCggX0woIiIpLCAtMSApOw0KLSAgICAgICAgfQ0KKyAgICAgICAgfSAgICAN
CisgICAgICAgIA0KICAgICBpZiAoIGFUZXh0Lkxlbmd0aCgpID4gMCApDQogICAgICAgICB7DQog
ICAgICAgICBDTWVudUl0ZW0qIHBhcmVudCA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBhUGFy
ZW50SWQgKTsNCiAgICAgICAgIGlmICggIXBhcmVudCApDQotICAgICAgICAgICAgcmV0dXJuOw0K
LSAgICAgICAgQ01lbnVJdGVtKiBpdGVtID0gQ01lbnVJdGVtOjpOZXdMKCBhVGV4dCwgYUNtZElk
LCBwYXJlbnQsIGFPYmogKTsNCi0gICAgICAgIEFwcGVuZCggcGFyZW50LCBpdGVtICk7DQorICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBLRXJyR2VuZXJhbDsNCisgICAgICAgICAg
ICB9DQorICAgICAgICANCisgICAgICAgIENNZW51SXRlbSogaXRlbSA9IE5VTEw7DQorICAgICAg
ICBpdGVtID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJZCApOyAgICAgICAgDQorICAg
ICAgICBpZiAoIGl0ZW0gKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gS0Vy
ckFscmVhZHlFeGlzdHM7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgDQor
ICAgICAgICBpdGVtID0gRmluZE5vZGVCeVRleHQoIGlNZW51Um9vdCwgYVRleHQgKTsNCisgICAg
ICAgIGlmICggaXRlbSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBLRXJy
QWxyZWFkeUV4aXN0czsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICANCisg
ICAgICAgIGl0ZW0gPSBDTWVudUl0ZW06Ok5ld0woIGFUZXh0LCBhQ21kSWQsIHBhcmVudCwgYU9i
aiApOyANCisgICAgICAgIHJldHVybiBBcHBlbmQoIHBhcmVudCwgaXRlbSApOyAgICANCiAgICAg
ICAgIH0NCisgICAgICAgIA0KKyAgICByZXR1cm4gS0VyckdlbmVyYWw7ICAgICAgICAgICAgICAg
IA0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC02OTQsMTEgKzcyMywx
MyBAQA0KIC8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLw0KLVRCb29sIENXaWRnZXRF
eHRlbnNpb246OkFwcGVuZCgNCitUSW50IENXaWRnZXRFeHRlbnNpb246OkFwcGVuZCggDQogICAg
IENNZW51SXRlbSogYVBhcmVudCwgQ01lbnVJdGVtKiBhSXRlbSApDQotICAgIHsNCisgICAgeyAg
DQogICAgIGlmICggIWFQYXJlbnQgKQ0KLSAgICAgICAgcmV0dXJuIEVGYWxzZTsNCisgICAgICAg
IHsNCisgICAgICAgIHJldHVybiBLRXJyR2VuZXJhbDsNCisgICAgICAgIH0NCiANCiAgICAgaWYg
KCBhUGFyZW50LT5GaXJzdENoaWxkKCkgPT0gTlVMTCApIC8vZmlyc3QgY2hpbGQNCiAgICAgICAg
IHsNCkBAIC03MDgsOCArNzM5LDggQEANCiAgICAgICAgIHsNCiAgICAgICAgIEFwcGVuZFNpYmxp
bmcoIGFQYXJlbnQtPkZpcnN0Q2hpbGQoKSwgYUl0ZW0gKTsNCiAgICAgICAgIH0NCi0gICAgcmV0
dXJuIEVUcnVlOw0KLSAgICB9DQorICAgIHJldHVybiBLRXJyTm9uZTsgICAgICAgICAgICANCisg
ICAgfSANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXaWRnZXRFeHRlbnNpb246
OkFwcGVuZFNpYmxpbmcNCkBAIC03NjYsNyArNzk3LDEwIEBADQogICAgICAgICAgICAgQ01lbnVJ
dGVtKiBwcmV2ID0gcGFyZW50LT5GaXJzdENoaWxkKCk7DQogICAgICAgICAgICAgQ01lbnVJdGVt
KiBpdGVtID0gTlVMTDsNCiAgICAgICAgICAgICBpZiAoIHByZXYgKQ0KKyAgICAgICAgICAgICAg
ICB7DQogICAgICAgICAgICAgICAgIGl0ZW0gPSBwcmV2LT5OZXh0U2libGluZygpOw0KKyAgICAg
ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgIHdoaWxlKCBpdGVt
ICkNCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICBpZiAoIGl0ZW0tPkNtZElk
KCkgPT0gYUNtZElkICkNCkBAIC04MDIsMjEgKzgzNiw0MSBAQA0KIC8vDQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KIC8vDQotdm9pZCBDV2lkZ2V0RXh0ZW5zaW9uOjpSZXBsYWNlTWVudUl0ZW0o
DQotICAgIFRJbnQgb2xkSXRlbUNtZElkLA0KLSAgICBjb25zdCBURGVzQyYgbmV3SXRlbVRleHQs
DQotICAgIFRJbnQgbmV3SXRlbUNtZElkLA0KK1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6UmVwbGFj
ZU1lbnVJdGVtKCANCisgICAgVEludCBvbGRJdGVtQ21kSWQsIA0KKyAgICBjb25zdCBURGVzQyYg
bmV3SXRlbVRleHQsIA0KKyAgICBUSW50IG5ld0l0ZW1DbWRJZCwgDQogICAgIFRJbnQgbmV3SXRl
bURpbW1lZCApDQogICAgIHsNCi0gICAgQ01lbnVJdGVtKiBub2RlID0gTlVMTDsNCi0NCi0gICAg
bm9kZSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBvbGRJdGVtQ21kSWQgKTsNCi0gICAgaWYg
KCBub2RlICkNCisgICAgQ01lbnVJdGVtKiBuZXdJdGVtID0gTlVMTDsNCisgICAgQ01lbnVJdGVt
KiBvbGRJdGVtID0gTlVMTDsNCisgICAgDQorICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGFub3Ro
ZXIgbm9kZSBpbiB0aGUgdHJlZSB3aXRoIHRoZSBzYW1lIElkIGFzIHRoYXQgb2YgDQorICAgIC8v
IG5ld0l0ZW0gYnV0IGFsbG93IGEgcmVwbGFjZSBvZiBvbGRJdGVtIHdpdGggdGhlIHNhbWUgSWQg
YXMgdGhlIG5ld0l0ZW0NCisgICAgbmV3SXRlbSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBu
ZXdJdGVtQ21kSWQgKTsgICAgDQorICAgIGlmICggbmV3SXRlbSAmJiBuZXdJdGVtLT5DbWRJZCgp
ICE9IG9sZEl0ZW1DbWRJZCApDQogICAgICAgICB7DQotICAgICAgICBub2RlLT5TZXRUZXh0KCBu
ZXdJdGVtVGV4dCApOw0KLSAgICAgICAgbm9kZS0+U2V0Q21kSWQoIG5ld0l0ZW1DbWRJZCApOw0K
LSAgICAgICAgbm9kZS0+U2V0RGltbWVkKCBuZXdJdGVtRGltbWVkICk7DQorICAgICAgICByZXR1
cm4gS0VyckFscmVhZHlFeGlzdHM7DQogICAgICAgICB9DQorICAgIA0KKyAgICAvLyBjaGVjayBp
ZiB0aGVyZSBpcyBhbm90aGVyIG5vZGUgaW4gdGhlIHRyZWUgd2l0aCB0aGUgc2FtZSB0ZXh0IGFz
IHRoYXQgb2YgDQorICAgIC8vIG5ld0l0ZW0gYnV0IGFsbG93IGEgcmVwbGFjZSBvZiBvbGRJdGVt
IHdpdGggdGhlIHNhbWUgdGV4dCBhcyB0aGUgbmV3SXRlbQ0KKyAgICBuZXdJdGVtID0gRmluZE5v
ZGVCeVRleHQoIGlNZW51Um9vdCwgbmV3SXRlbVRleHQgKTsNCisgICAgb2xkSXRlbSA9IEZpbmRO
b2RlQnlJZCggaU1lbnVSb290LCBvbGRJdGVtQ21kSWQgKTsgIA0KKyAgICBpZiAoIG5ld0l0ZW0g
JiYgb2xkSXRlbSAmJiBuZXdJdGVtLT5UZXh0KCkuQ29tcGFyZShuZXdJdGVtLT5UZXh0KCkpICE9
IDAgKQ0KKyAgICAgICAgew0KKyAgICAgICAgcmV0dXJuIEtFcnJBbHJlYWR5RXhpc3RzOw0KKyAg
ICAgICAgfQ0KKyAgICAgIA0KKyAgICBpZiAoIG9sZEl0ZW0gKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgb2xkSXRlbS0+U2V0VGV4dCggbmV3SXRlbVRleHQgKTsgICAgDQorICAgICAgICBvbGRJdGVt
LT5TZXRDbWRJZCggbmV3SXRlbUNtZElkICk7ICAgDQorICAgICAgICBvbGRJdGVtLT5TZXREaW1t
ZWQoIG5ld0l0ZW1EaW1tZWQgKTsNCisgICAgICAgIHJldHVybiBLRXJyTm9uZTsNCisgICAgICAg
IH0NCisgICAgICAgIA0KKyAgICByZXR1cm4gS0VyckdlbmVyYWw7ICAgICAgICANCiAgICAgfQ0K
IA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC04NjAsOSArOTE0LDEzIEBADQogDQogICAg
IG5vZGUgPSBGaW5kTm9kZUJ5VGV4dCggaU1lbnVSb290LCB0ZXh0VmFsICk7DQogICAgIGlmICgg
bm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gbm9kZS0+T2JqKCk7DQorICAgICAg
ICB9DQogICAgIGVsc2UNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVybiBOVUxMOw0KKyAgICAg
ICAgfSAgICAgICAgDQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtODc3
LDEwICs5MzUsMTUgQEANCiAgICAgQ01lbnVJdGVtKiBub2RlID0gTlVMTDsNCiANCiAgICAgbm9k
ZSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBjbWRJZCApOw0KKyAgICANCiAgICAgaWYgKCBu
b2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVybiBub2RlLT5PYmooKTsNCisgICAgICAg
IH0NCiAgICAgZWxzZQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAgICAg
ICB9ICAgICAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC04OTQs
OCArOTU3LDExIEBADQogICAgIHsNCiAgICAgQ01lbnVJdGVtKiBub2RlID0gTlVMTDsNCiAgICAg
bm9kZSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBhQ21kSWQgKTsNCisgICAgDQogICAgIGlm
ICggbm9kZSApDQorICAgICAgICB7DQogICAgICAgICBub2RlLT5TZXREaW1tZWQoIGFWYWx1ZSAp
Ow0KKyAgICAgICAgfQ0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTkx
MCw4ICs5NzYsMTEgQEANCiAgICAgew0KICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KICAg
ICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJZCApOw0KKyAgICANCiAgICAg
aWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIG5vZGUtPlNldENhbGxiYWNrKCBhT25T
ZWxlY3RDYWxsYmFjayApOw0KKyAgICAgICAgfQ0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KQEAgLTkyNSwxMCArOTk0LDE1IEBADQogICAgIHsNCiAgICAgQ01lbnVJdGVtKiBu
b2RlID0gTlVMTDsNCiAgICAgbm9kZSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBhQ21kSWQg
KTsNCisgICAgDQogICAgIGlmICggbm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4g
bm9kZS0+Q2FsbGJhY2soKTsNCisgICAgICAgIH0NCiAgICAgZWxzZQ0KKyAgICAgICAgew0KICAg
ICAgICAgcmV0dXJuIE5VTEw7DQorICAgICAgICB9ICAgICAgICANCiAgICAgfQ0KIA0KIA0KQEAg
LTEwMDgsNyArMTA4Miw5IEBADQogICAgIENNZW51SXRlbSogaXRlbSA9IE5VTEw7DQogDQogICAg
IGlmICggIW5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIGl0ZW07DQorICAgICAg
ICB9DQogDQogICAgIGlmICggbm9kZS0+Q21kSWQoKSA9PSBhQ21kSWQgKQ0KICAgICAgICAgew0K
QEAgLTEwNDIsNyArMTExOCw5IEBADQogICAgIENNZW51SXRlbSogaXRlbSA9IE5VTEw7DQogDQog
ICAgIGlmICggIW5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIGl0ZW07DQorICAg
ICAgICB9DQogDQogICAgIGlmICggbm9kZS0+VGV4dCgpLkNvbXBhcmUoIGFUZXh0ICkgPT0gMCAp
DQogICAgICAgICB7DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XaWRnZXRQcmVmZXJl
bmNlcy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldFBy
ZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMjM3NjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XaWRnZXRQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC02MCw5ICs2MCw5IEBA
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXaWRnZXRQcmVmZXJlbmNlczo6TmV3
TA0KKy8vIFR3by1waGFzZWQgY29uc3RydWN0b3INCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQogQ1dpZGdldFByZWZlcmVuY2VzKiBDV2lkZ2V0UHJlZmVyZW5jZXM6Ok5l
d0woIA0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9uICkNCkBAIC03NSw5
ICs3NSw5IEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXaWRnZXRQcmVmZXJl
bmNlczo6TmV3TEMNCisvLyBUd28tcGhhc2VkIGNvbnN0cnVjdG9yDQogLy8NCiAvLw0KLS8vDQog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVmZXJlbmNlcyogQ1dpZGdldFByZWZl
cmVuY2VzOjpOZXdMQyggDQogICAgIENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24g
KQ0KQEAgLTkxLDM1ICs5MSwzMyBAQA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBD
V2lkZ2V0UHJlZmVyZW5jZXM6OkNXaWRnZXRQcmVmZXJlbmNlcw0KKy8vIEMrKyBDb25zdHJ1Y3Rv
cg0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBDV2lkZ2V0UHJlZmVy
ZW5jZXM6OkNXaWRnZXRQcmVmZXJlbmNlcyggQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVu
c2lvbiApDQogICAgIDogaVdpZGdldEV4dGVuc2lvbiggJmFXaWRnZXRFeHRlbnNpb24gKQ0KLSAg
ICB7DQorICAgIHsgICAgDQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8g
Q1dpZGdldFByZWZlcmVuY2VzOjp+Q1dpZGdldFByZWZlcmVuY2VzDQorLy8gRGVzdHJ1Y3Rvcg0K
IC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBDV2lkZ2V0UHJlZmVyZW5j
ZXM6On5DV2lkZ2V0UHJlZmVyZW5jZXMoKQ0KICAgICB7DQotICAgIGlNYXAuUmVzZXRBbmREZXN0
cm95KCk7DQotICAgIGlNYXAuQ2xvc2UoKTsNCi0gICAgaVNpemVNYXAuUmVzZXRBbmREZXN0cm95
KCk7DQotICAgIGlTaXplTWFwLkNsb3NlKCk7DQorICAgIGlQcmVmZXJlbmNlcy5SZXNldEFuZERl
c3Ryb3koKTsNCisgICAgaVByZWZlcmVuY2VzLkNsb3NlKCk7DQogICAgIGRlbGV0ZSBpQmFzZVBh
dGg7DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZl
cmVuY2VzOjpDb25zdHJ1Y3RMDQorLy8gU3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3INCiAv
Lw0KIC8vDQotLy8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVy
ZW5jZXM6OkNvbnN0cnVjdEwoKQ0KICAgICB7DQpAQCAtMTI3LDQzICsxMjUsNDkgQEANCiANCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2VzOjpQcmVmZXJlbmNl
TA0KKy8vIEdldCBwcmVmZXJlbmNlIGZvciBhIGtleQ0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCiBUSW50IENXaWRnZXRQcmVmZXJlbmNlczo6UHJlZmVyZW5jZUwoIGNv
bnN0IFREZXNDJiBhS2V5LCBUUHRyQyYgYVZhbHVlICkNCiAgICAgew0KKyAgICBUSW50IHJTdWNj
ZXNzID0gS0Vyck5vdEZvdW5kOw0KKyAgICBUSW50IGkgPSAwOw0KKyAgICBUSW50IHNpemUgPSAw
Ow0KKyAgICANCiAgICAgaWYgKCAhaUJhc2VQYXRoICYmICggaVdpZGdldEV4dGVuc2lvbi0+V2lk
Z2V0QmFzZVBhdGgoKS5MZW5ndGgoKSA+IDAgKSApDQogICAgICAgICBpQmFzZVBhdGggPSBpV2lk
Z2V0RXh0ZW5zaW9uLT5XaWRnZXRCYXNlUGF0aCgpLkFsbG9jTCgpOw0KIA0KLSAgICBUSW50IHJT
dWNjZXNzID0gS0Vyck5vdEZvdW5kOw0KLQ0KKyANCiAgICAgaWYgKCBhS2V5Lkxlbmd0aCgpIDw9
IEtNYXhLZXlWYWx1ZVNpemUgKQ0KICAgICAgICAgew0KICAgICAgICAgSEJ1ZkMqIGtleSA9IEhC
dWZDOjpOZXdMQyggYUtleS5MZW5ndGgoKSArIEtNYXhJbnRMZW5ndGggKyAxICk7DQogICAgICAg
ICBrZXktPkRlcygpLkZvcm1hdCggS0tleUZvcm1hdCwgaVdpZGdldEV4dGVuc2lvbi0+R2V0V2lk
Z2V0SWQoKSwgJmFLZXkgKTsNCi0gICAgICAgIFRJbnQqIHNpemUgPSBpU2l6ZU1hcC5GaW5kKCAq
a2V5ICk7DQotICAgICAgICBURGVzQyogcmVzID0gaU1hcC5GaW5kKCAqa2V5ICk7DQotDQotICAg
ICAgICBpZiAoICFyZXMgfHwgIXNpemUgKQ0KKyAgICAgICAgDQorICAgICAgICBDUHJlZkVsZW1l
bnQqIHByZWYgPSBpUHJlZmVyZW5jZXMuRmluZCggKmtleSApOw0KKyAgICAgICAgICAgICAgICAN
CisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgaWYgKCAhcHJlZiApDQogICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgga2V5ICk7DQog
ICAgICAgICAgICAgcmV0dXJuIHJTdWNjZXNzOw0KICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICANCisgICAgICAgIHNpemUgPSBwcmVmLT5WYWx1ZVNpemUoKTsNCisgICAgICAgICAgICANCiAN
Ci0gICAgICAgIGlmICggKnNpemUgPiBLTWF4S2V5VmFsdWVTaXplICkNCisgICAgICAgIGlmICgg
c2l6ZSA+IEtNYXhLZXlWYWx1ZVNpemUgKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAv
LyByZXR1cm4gY29udGVudHMgZnJvbSB0ZW1wIGZpbGUgd2hvc2UgbmFtZSBpcyBzdG9yZWQgDQot
ICAgICAgICAgICAgLy8gaW4gdGhlIHZhbHVlIGZpZWxkIG9mIGlNYXANCisgICAgICAgICAgICAv
LyBpbiB0aGUgaVZhbHVlIG1lbWJlciBvZiBpUHJlZmVyZW5jZXMNCiAgICAgICAgICAgICBSRnMg
ZnM7DQogDQogICAgICAgICAgICAgaWYgKCBmcy5Db25uZWN0KCkgPT0gS0Vyck5vbmUgKQ0KICAg
ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCBmcyAp
Ow0KLSAgICAgICAgICAgICAgICBIQnVmQyogZmlsZVBhdGggPSBIQnVmQzo6TmV3TEMoIHJlcy0+
TGVuZ3RoKCkgKTsNCi0NCisgICAgICAgICAgICAgICAgSEJ1ZkMqIGZpbGVQYXRoID0gSEJ1ZkM6
Ok5ld0xDKCBwcmVmLT5WYWx1ZSgpLkxlbmd0aCgpICk7DQogICAgICAgICAgICAgICAgIFRQdHIg
Zk5hbWUoIGZpbGVQYXRoLT5EZXMoKSApOw0KLSAgICAgICAgICAgICAgICBmTmFtZS5BcHBlbmQo
ICpyZXMgKTsNCisgICAgICAgICAgICAgICAgZk5hbWUuQXBwZW5kKCBwcmVmLT5WYWx1ZSgpICk7
DQogDQogICAgICAgICAgICAgICAgIFJGaWxlUmVhZFN0cmVhbSByZWFkU3RyZWFtOw0KIA0KQEAg
LTE4NCwxNiArMTg4LDE2IEBADQogICAgICAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBv
cEFuZERlc3Ryb3koKTsvL3JlYWRTdHJlYW0NCiAgICAgICAgICAgICAgICAgICAgIH0gICANCiAN
Ci0gICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KDIpOyAvL2ZpbGVQ
YXRoLGZzDQorICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSggMiAp
OyAvL2ZpbGVQYXRoLGZzDQogICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICB9ICAgICAg
ICANCi0gICAgICAgIGVsc2UgaWYgKCAqc2l6ZSA+PSAwICkNCisgICAgICAgIGVsc2UgaWYgKCBz
aXplID49IDAgKQ0KICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICBhVmFsdWUuU2V0KCAqcmVz
ICk7DQorICAgICAgICAgICAgYVZhbHVlLlNldCggcHJlZi0+VmFsdWUoKSApOw0KICAgICAgICAg
ICAgIHJTdWNjZXNzID0gS0Vyck5vbmU7DQogICAgICAgICAgICAgfQ0KIA0KLSAgICAgICAgQ2xl
YW51cFN0YWNrOjpQb3BBbmREZXN0cm95KGtleSk7DQorICAgICAgICBDbGVhbnVwU3RhY2s6OlBv
cEFuZERlc3Ryb3koIGtleSApOw0KICAgICAgICAgfQ0KIA0KICAgICByZXR1cm4gclN1Y2Nlc3M7
DQpAQCAtMjAxLDkgKzIwNSw5IEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENX
aWRnZXRQcmVmZXJlbmNlczo6U2V0UHJlZmVyZW5jZUwNCisvLyBTZXQgUHJlZmVyZW5jZSBmb3Ig
YSBrZXkNCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2lk
Z2V0UHJlZmVyZW5jZXM6OlNldFByZWZlcmVuY2VMKCANCiAgICAgY29uc3QgVERlc0MmIGFLZXks
IGNvbnN0IFREZXNDJiBhVmFsdWUgKQ0KQEAgLTIxOCwxOSArMjIyLDE3IEBADQogDQogICAgICAg
ICBpZiAoIGFWYWx1ZS5MZW5ndGgoKSA8PSBLTWF4S2V5VmFsdWVTaXplICkNCiAgICAgICAgICAg
ICB7DQotICAgICAgICAgICAgSEJ1ZkMqIHZhbHVlID0gYVZhbHVlLkFsbG9jTEMoKTsNCi0gICAg
ICAgICAgICBpTWFwLkluc2VydEwoIGtleSwgdmFsdWUgKTsNCi0gICAgICAgICAgICBUSW50KiBz
aXplID0gbmV3IFRJbnQoYVZhbHVlLkxlbmd0aCgpKTsNCi0gICAgICAgICAgICAvLyBtYWtlIGEg
Y29weSBvZiBrZXkgYW5kIGluc2VydCB0aGF0DQotICAgICAgICAgICAgSEJ1ZkMqIG5ld0tleSA9
IGtleS0+QWxsb2NMQygpOw0KLSAgICAgICAgICAgIGlTaXplTWFwLkluc2VydEwoIG5ld0tleSwg
c2l6ZSApOw0KLSAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCAzICk7Ly9uZXdLZXksdmFs
dWUsa2V5ICAgICAgICAgICANCisgICAgICAgICAgICBDUHJlZkVsZW1lbnQqIHByZWYgPSBuZXcg
KEVMZWF2ZSkgQ1ByZWZFbGVtZW50OyAgICAgIA0KKyAgICAgICAgICAgIHByZWYtPlNldFZhbHVl
TCggYVZhbHVlICk7DQorICAgICAgICAgICAgcHJlZi0+U2V0VmFsdWVTaXplKCBhVmFsdWUuTGVu
Z3RoKCkgKTsgICAgDQorICAgICAgICAgICAgaVByZWZlcmVuY2VzLkluc2VydEwoIGtleSwgcHJl
ZiApOw0KKyAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCBrZXkgKTsgICANCiAgICAgICAg
ICAgICByZXR1cm47DQogICAgICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0KICAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAvLyBjcmVhdGUgYSB0ZW1wIGZpbGUgYW5kIHNhdmUgdGhlIHZhbHVl
IGluIHRlbXAgZmlsZS4gDQotICAgICAgICAgICAgLy8gaU1hcCB2YWx1ZSBmaWVsZCBjb250YWlu
cyB0aGUgdGVtcCBmaWxlIG5hbWUuDQorICAgICAgICAgICAgLy8gaVZhbHVlIG1lbWJlciBvZiBD
UHJlZkVsZW1lbnQgY29udGFpbnMgdGhlIHRlbXAgZmlsZSBuYW1lLg0KICAgICAgICAgICAgIFJG
cyBmczsNCiAgICAgICAgICAgICBSRmlsZSBmaWxlOw0KIA0KQEAgLTI0NiwyMCArMjQ4LDE2IEBA
DQogDQogICAgICAgICAgICAgICAgIFRQdHIgZk5hbWUoIGZpbGVQYXRoLT5EZXMoKSApOw0KICAg
ICAgICAgICAgICAgICBmTmFtZS5BcHBlbmQoIHRlbXBGaWxlTmFtZSApOw0KLSAgICAgICAgICAg
ICAgICBpTWFwLkluc2VydEwoIGtleSwgZmlsZVBhdGggKTsNCi0gICAgICAgICAgICAgICAgVElu
dCogc2l6ZSA9IG5ldyBUSW50KCBhVmFsdWUuTGVuZ3RoKCkgKTsNCi0gICAgICAgICAgICAgICAg
Ly8gbWFrZSBhIGNvcHkgb2Yga2V5IGFuZCBpbnNlcnQgdGhhdA0KLSAgICAgICAgICAgICAgICBI
QnVmQyogbmV3S2V5ID0ga2V5LT5BbGxvY0xDKCk7DQotICAgICAgICAgICAgICAgIGlTaXplTWFw
Lkluc2VydEwoIG5ld0tleSwgc2l6ZSApOw0KLQ0KKyAgICAgICAgICAgICAgICBDUHJlZkVsZW1l
bnQqIHByZWYgPSBuZXcgKCBFTGVhdmUgKSBDUHJlZkVsZW1lbnQ7ICAgICAgDQorICAgICAgICAg
ICAgICAgIHByZWYtPlNldFZhbHVlTCggKmZpbGVQYXRoICk7ICAgICAgICAgICAgICAgDQorICAg
ICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlU2l6ZSggYVZhbHVlLkxlbmd0aCgpICk7ICAgIA0K
KyAgICAgICAgICAgICAgICBpUHJlZmVyZW5jZXMuSW5zZXJ0TCgga2V5LCBwcmVmICk7DQogICAg
ICAgICAgICAgICAgIFJGaWxlV3JpdGVTdHJlYW0gd3JpdGVTdHJlYW0oIGZpbGUgKTsNCiAgICAg
ICAgICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRlU3RyZWFtICk7ICAgICAgICANCiAg
ICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGFWYWx1ZS5MZW5ndGgoKSAp
Ow0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUwoIGFWYWx1ZSApOyAgICAgICAg
ICAgICANCiAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uQ29tbWl0TCgpOw0KLSAgICAgICAg
ICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy93cml0ZVN0cmVhbQ0KLSAg
ICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMiApOy8vbmV3S2V5LGZpbGVQYXRoDQot
ICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSggMiApOyAvL2ZpbGUs
ZnMNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCA0ICk7IC8v
d3JpdGVTdHJlYW0sZmlsZVBhdGgsZmlsZSxmcyANCiAgICAgICAgICAgICAgICAgQ2xlYW51cFN0
YWNrOjpQb3AoIGtleSApOw0KICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAg
ICAgIH0gICAgICAgICAgIA0KQEAgLTI3MSw5ICsyNjksOSBAQA0KIA0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMDQorLy8gU0F2ZSBwcmVmZXJl
bmNlcyB0byBwZXJzaXN0ZW50IHN0b3JhZ2UNCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMKCkNCiAgICAgew0KQEAg
LTMwNSwyNCArMzAzLDIxIEBADQogICAgICAgICBpZiAoIGZpbGVlcnJvciA9PSBLRXJyTm9uZSAp
DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCB3cml0ZVN0
cmVhbSApOw0KLSAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBpTWFwLkNvdW50
KCkgKTsNCi0NCi0gICAgICAgICAgICBUUHRySGFzaE1hcEl0ZXI8VERlc0MsVERlc0M+IGl0KCBp
TWFwICk7DQorICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGlQcmVmZXJlbmNl
cy5Db3VudCgpICk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgVFB0ckhhc2hNYXBJdGVy
PFREZXNDLENQcmVmRWxlbWVudD4gaXQoIGlQcmVmZXJlbmNlcyApOw0KICAgICAgICAgICAgIGNv
bnN0IFREZXNDKiBrZXk7DQotICAgICAgICAgICAgY29uc3QgVERlc0MqIHZhbHVlOw0KKyAgICAg
ICAgICAgIGNvbnN0IENQcmVmRWxlbWVudCogcHJlZjsNCiANCisNCiAgICAgICAgICAgICB3aGls
ZSAoICgga2V5ID0gaXQuTmV4dEtleSgpICkgIT0gMCApDQogICAgICAgICAgICAgICAgIHsNCi0g
ICAgICAgICAgICAgICAgdmFsdWUgPSBpdC5DdXJyZW50VmFsdWUoKTsNCisgICAgICAgICAgICAg
ICAgcHJlZiA9IGl0LkN1cnJlbnRWYWx1ZSgpOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVh
bS5Xcml0ZUludDMyTCgga2V5LT5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0
cmVhbS5Xcml0ZUwoICprZXkgKTsNCi0gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJ
bnQzMkwoIHZhbHVlLT5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5X
cml0ZUwoICp2YWx1ZSApOw0KLSAgICAgICAgICAgICAgICBUSW50KiBzaXplID0gaVNpemVNYXAu
RmluZCggKmtleSApOw0KLSAgICAgICAgICAgICAgICBpZiAoIHNpemUgKQ0KLSAgICAgICAgICAg
ICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoICpzaXplICk7DQotICAgICAgICAgICAg
ICAgIGVsc2UNCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCAw
ICk7DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBwcmVmLT5WYWx1
ZSgpLkxlbmd0aCgpICk7DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlTCggcHJl
Zi0+VmFsdWUoKSApOyAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgd3JpdGVTdHJl
YW0uV3JpdGVJbnQzMkwoIHByZWYtPlZhbHVlU2l6ZSgpICk7ICAgICAgICAgICAgIA0KICAgICAg
ICAgICAgICAgICB9DQogDQogICAgICAgICAgICAgd3JpdGVTdHJlYW0uQ29tbWl0TCgpOw0KQEAg
LTMzNSw5ICszMzAsOSBAQA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0
UHJlZmVyZW5jZXM6OkxvYWRMDQorLy8gTG9hZCBwcmVmZXJlbmNlcyBmcm9tIHBlcnNpc3RlbnQg
c3RvcmFnZQ0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENX
aWRnZXRQcmVmZXJlbmNlczo6TG9hZEwoKQ0KICAgICB7DQpAQCAtMzc4LDEyICszNzMsMTUgQEAN
CiAgICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyogdmFsdWUgPSBIQnVmQzo6TmV3TEMoIGxl
biApOw0KICAgICAgICAgICAgICAgICAgICAgICAgIFRQdHIgcHRydmFsdWUgPSB2YWx1ZS0+RGVz
KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFN0cmVhbS5SZWFkTCggcHRydmFsdWUs
IGxlbiApOw0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlNYXAuSW5zZXJ0TCgga2V5LCB2YWx1
ZSApOw0KLSAgICAgICAgICAgICAgICAgICAgICAgIFRJbnQgKnNpemUgPSBuZXcgVEludCAoIHJl
YWRTdHJlYW0uUmVhZEludDMyTCgpICk7DQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFr
ZSBhIGNvcHkgb2Yga2V5IGFuZCBpbnNlcnQgdGhhdA0KLSAgICAgICAgICAgICAgICAgICAgICAg
IEhCdWZDKiBuZXdLZXkgPSBrZXktPkFsbG9jTEMoKTsNCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpU2l6ZU1hcC5JbnNlcnRMKCBuZXdLZXksIHNpemUgKTsNCi0gICAgICAgICAgICAgICAgICAg
ICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMyApOyAvL25ld0tleSx2YWx1ZSxrZXkNCisgICAgICAg
ICAgICAgICAgICAgICAgICBDUHJlZkVsZW1lbnQqIHByZWYgPSBuZXcgKCBFTGVhdmUgKSBDUHJl
ZkVsZW1lbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAg
ICAgICAgICAgQ2xlYW51cFN0YWNrOjpQdXNoTCggcHJlZiApOw0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByZWYtPlNldFZhbHVlTCggcHRydmFsdWUgKTsNCisgICAgICAgICAgICAgICAgICAg
ICAgICBUSW50IHNpemUgPSByZWFkU3RyZWFtLlJlYWRJbnQzMkwoKTsNCisgICAgICAgICAgICAg
ICAgICAgICAgICBwcmVmLT5TZXRWYWx1ZVNpemUoIHNpemUgKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAg
ICBpUHJlZmVyZW5jZXMuSW5zZXJ0TCgga2V5LCBwcmVmICk7DQorICAgICAgICAgICAgICAgICAg
ICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoKTsgLy9wcmVmIA0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvL3ZhbHVlDQorICAgICAgICAgICAg
ICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoKTsgLy9rZXkNCiAgICAgICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAg
ICAgICAgew0KQEAgLTQwMiw0ICs0MDAsNTUgQEANCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveSggMiApOyAvL2ZzLGZpbGVQYXRoDQogICAgICAgICB9DQogICAgIH0NCisgICAg
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENQcmVmRWxlbWVudDo6Q1ByZWZFbGVtZW50
DQorLy8gQysrIGNvbnN0cnVjdG9yDQorLy8NCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
ICAgDQorQ1ByZWZFbGVtZW50OjpDUHJlZkVsZW1lbnQoKQ0KKwl7DQorCX0NCiANCisgICAgDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENQcmVmRWxlbWVudDo6fkNQcmVmRWxlbWVudA0K
Ky8vIERlc3RydWN0b3INCisvLw0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0NQcmVm
RWxlbWVudDo6fkNQcmVmRWxlbWVudCgpDQorCXsNCisJZGVsZXRlIGlWYWx1ZTsNCisJfQ0KKwkN
CisJCQ0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDUHJlZkVsZW1lbnQ6OlNldFZhbHVl
TA0KKy8vIFNldCB2YWx1ZSBmb3IgYSBwcmVmZXJlbmNlDQorLy8NCisvLw0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCit2b2lkIENQcmVmRWxlbWVudDo6U2V0VmFsdWVMKCBjb25zdCBURGVzQyYg
YVZhbHVlICkNCisJew0KKwlpZiAoICFpVmFsdWUgKQ0KKwkJew0KKwkJaVZhbHVlICA9IEhCdWZD
OjpOZXdMKCBhVmFsdWUuTGVuZ3RoKCkgKTsNCisJCSppVmFsdWUgPSBhVmFsdWU7CQ0KKwkJcmV0
dXJuOw0KKwkJfQ0KKw0KKwlpZiAoIGFWYWx1ZS5MZW5ndGgoKSA+IGlWYWx1ZS0+TGVuZ3RoKCkg
KQ0KKwkJew0KKwkJZGVsZXRlIGlWYWx1ZTsNCisJCWlWYWx1ZSAgPSBIQnVmQzo6TmV3TCggYVZh
bHVlLkxlbmd0aCgpICk7DQorCQkqaVZhbHVlID0gYVZhbHVlOw0KKwkJfQ0KKwllbHNlDQorCQl7
DQorCQkqaVZhbHVlID0gYVZhbHVlOw0KKwkJaWYgKCBhVmFsdWUuTGVuZ3RoKCkgPCBpVmFsdWUt
Pkxlbmd0aCgpICkNCisJCQlpVmFsdWUgID0gaVZhbHVlLT5SZUFsbG9jTCggYVZhbHVlLkxlbmd0
aCgpICk7IC8vIHJlY2xhaW0gc3BhY2UNCisJCX0NCisJfQ0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15232</attachid>
            <date>2007-06-25 12:10:55 -0700</date>
            <delta_ts>2007-06-26 07:33:14 -0700</delta_ts>
            <desc>3.2 patch for menu api and preferences enhancement</desc>
            <filename>widget_menu_enh_3.2.patch</filename>
            <type>text/plain</type>
            <size>25318</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCShyZXZpc2lv
biAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCSh3
b3JraW5nIGNvcHkpDQpAQCAtMTg5LDkgKzE4OSw5IEBADQogICAgICAgICAqIEBwYXJhbSB0ZXh0
IGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhlIG1haW4gYXJlYSBvZiB0aGUgbWVudSBpdGVtDQogICAg
ICAgICAqIEBwYXJhbSBJRCBvZiB0aGUgY29tbWFuZCB0byBpc3N1ZSB3aGVuIHRoZSBtZW51IGl0
ZW0gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIHBhcmVu
dCBtZW51IGl0ZW0NCi0gICAgICAgICogQHJldHVybiBub25lDQorICAgICAgICAqIEByZXR1cm4g
RXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAgICAgIHZvaWQgQWRkT3B0aW9uc01lbnVJdGVt
KCBjb25zdCBURGVzQyYgYVRleHQsIFRJbnQgYUNtZElkLCBUSW50IGFQYXJlbnRDbWRJZCwgdm9p
ZCogb2JqICk7DQorICAgICAgICBUSW50IEFkZE9wdGlvbnNNZW51SXRlbSggY29uc3QgVERlc0Mm
IGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50Q21kSWQsIHZvaWQqIG9iaiApOw0KIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIE1ldGhvZCBTZXRSaWdodFNvZnRLZXlMYWJlbA0KQEAg
LTIyNCw5ICsyMjQsOSBAQA0KICAgICAgICAgKiBAcGFyYW0gdGV4dC9sYWJlbCBmb3IgdGhlIG5l
dyBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIG5ldyBtZW51
IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGRpbW1lZCBzdGF0dXMNCi0gICAgICAgICogQHJldHVy
biBub25lDQorICAgICAgICAqIEByZXR1cm4gRXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAg
ICAgIHZvaWQgUmVwbGFjZU1lbnVJdGVtKCBUSW50IG9sZENtZElkLCBjb25zdCBURGVzQyYgbmV3
VGV4dCwgDQorICAgICAgICBUSW50IFJlcGxhY2VNZW51SXRlbSggVEludCBvbGRDbWRJZCwgY29u
c3QgVERlc0MmIG5ld1RleHQsIA0KICAgICAgICAgICAgIFRJbnQgbmV3Q21kSWQsIFRJbnQgbmV3
RGltbWVkICk7DQogDQogICAgICAgICAvKioNCkBAIC01NDIsOSArNTQyLDkgQEANCiAgICAgICAg
ICogQHNpbmNlIDMuMg0KICAgICAgICAgKiBAcGFyYW0gcGFyZW50IG1lbnUgaXRlbQ0KICAgICAg
ICAgKiBAcGFyYW0gbWVudSBpdGVtIHRvIGJlIGluc2VydGVkDQotICAgICAgICAqIEByZXR1cm4g
VEJvb2wNCisgICAgICAgICogQHJldHVybiBlcnJvciBjb2RlDQogICAgICAgICAqLw0KLSAgICAg
ICAgVEJvb2wgQXBwZW5kKCBDTWVudUl0ZW0qIHJvb3QsIENNZW51SXRlbSogaXRlbSApOw0KKyAg
ICAgICAgVEludCBBcHBlbmQoIENNZW51SXRlbSogcm9vdCwgQ01lbnVJdGVtKiBpdGVtICk7DQog
DQogICAgICAgICAvKg0KICAgICAgICAgKiBNZXRob2QgQXBwZW5kU2libGluZw0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjM3
NjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRnZXRQcmVmZXJlbmNlcy5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNTcsNyArNTcsNzcgQEANCiBjbGFzcyBDV2lkZ2V0RXh0ZW5zaW9uOw0K
IA0KIC8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQogLyoqDQorKiAgQ1ByZWZFbGVtZW50DQorKg0K
KyogIEBsaWIgd2lkZ2V0ZW5naW5lLmRsbA0KKyogIEBzaW5jZSAzLjINCisqLw0KK2NsYXNzIENQ
cmVmRWxlbWVudCA6IHB1YmxpYyBDQmFzZQ0KKwl7DQorcHVibGljIDoNCisgICAgLyoqDQorICAg
ICogQ29uc3RydWN0b3IuDQorICAgICovDQorCUNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoqDQor
ICAgICogRGVzdHJ1Y3Rvci4NCisgICAgKi8NCisJfkNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoq
DQorCSogU2V0VmFsdWVMDQorICAgICogU2V0IHZhbHVlIGZvciBhIHByZWZlcmVuY2UNCisgICAg
KiBAcGFyYW0gY29uc3QgVERlc0MmIGFWYWx1ZSAtIFRoZSB2YWx1ZSB0byBiZSBzZXQNCisgICAg
KiBAcmV0dXJuIG5vbmUNCisgICAgKi8NCisJdm9pZCBTZXRWYWx1ZUwoIGNvbnN0IFREZXNDJiBh
VmFsdWUgKTsNCisJDQorICAgIC8qKg0KKwkqIFNldFZhbHVlU2l6ZQ0KKyAgICAqIFNldCBsZW5n
dGggb2YgdmFsdWUgDQorICAgICogQHBhcmFtIGNvbnN0IFRJbnQgYVNpemUgLSBUaGUgbGVuZ3Ro
IHRvIGJlIHNldA0KKyAgICAqIEByZXR1cm4gbm9uZQ0KKyAgICAqLw0KKwl2b2lkIFNldFZhbHVl
U2l6ZSggY29uc3QgVEludCBhU2l6ZSApDQorCSAgICB7DQorCSAgICBpVmFsdWVTaXplID0gYVNp
emU7DQorCSAgICB9DQorCSAgICANCisgICAgLyoqDQorCSogR2V0VmFsdWUNCisgICAgKiBHZXQg
dmFsdWUgZm9yIGEgcHJlZmVyZW5jZQ0KKyAgICAqIEBwYXJhbSBub25lDQorICAgICogQHJldHVy
biBjb25zdCBURGVzQyYgLSB2YWx1ZSBmb3IgdGhlIHByZWZlcmVuY2UNCisgICAgKi8JICAgIA0K
Kwljb25zdCBURGVzQyYgVmFsdWUoKSBjb25zdA0KKwkgICAgew0KKwkgICAgaWYgKCBpVmFsdWUg
KSANCisJICAgICAgICByZXR1cm4gKmlWYWx1ZTsNCisgICAgICAgIGVsc2UgDQorICAgICAgICAg
ICAgcmV0dXJuIEtOdWxsRGVzQygpOw0KKwkgICAgfQ0KKwkgICAgDQorICAgIC8qKg0KKwkqIEdl
dFZhbHVlU2l6ZQ0KKyAgICAqIEdldCBsZW5ndGggb2YgdmFsdWUNCisgICAgKiBAcGFyYW0gbm9u
ZQ0KKyAgICAqIEByZXR1cm4gVEludCAtIGxlbmd0aCBvZiB2YWx1ZSBmb3IgdGhlIHByZWZlcmVu
Y2UNCisgICAgKi8JICAgIA0KKwlUSW50IFZhbHVlU2l6ZSgpIGNvbnN0DQorCSAgICB7DQorCSAg
ICByZXR1cm4gaVZhbHVlU2l6ZTsNCisJICAgIH0NCisJICAgIA0KK3ByaXZhdGUgOg0KKwlIQnVm
QyogIGlWYWx1ZTsgICAgIC8vIHZhbHVlIG9mIHRoZSBwcmVmZXJlbmNlDQorCVRJbnQgICAgaVZh
bHVlU2l6ZTsgLy8gbGVuZ3RoIG9mIHRoZSB2YWx1ZQ0KKwl9Ow0KKw0KKw0KKy8qKg0KICogIENX
aWRnZXRQcmVmZXJlbmNlcw0KICoNCiAqICBAbGliIHdpZGdldGVuZ2luZS5kbGwNCkBAIC02Nywz
MiArMTM3LDU1IEBADQogICAgIHsNCiANCiAgICAgcHVibGljOg0KLSAgICAgICAgc3RhdGljIENX
aWRnZXRQcmVmZXJlbmNlcyogTmV3TChDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
KTsNCi0gICAgICAgIHN0YXRpYyBDV2lkZ2V0UHJlZmVyZW5jZXMqIE5ld0xDKENXaWRnZXRFeHRl
bnNpb24mIGFXaWRnZXRFeHRlbnNpb24pOw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFR3by1w
aGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENXaWRnZXRQ
cmVmZXJlbmNlcyogTmV3TCggQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVuc2lvbiApOw0K
KyAgICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyogTmV3TEMoIENXaWRnZXRFeHRlbnNp
b24mIGFXaWRnZXRFeHRlbnNpb24gKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KICAgICAgICAgfkNXaWRnZXRQcmVmZXJlbmNl
cygpOw0KIA0KICAgICBwdWJsaWM6DQorICAgICAgICAvKioNCisgICAgICAgICogTG9hZCBwcmVm
ZXJlbmNlcyBmcm9tIHBlcnNpc3RlbnQgc3RvcmFnZQ0KKyAgICAgICAgKi8NCiAgICAgICAgIHZv
aWQgTG9hZEwoKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNhdmUgcHJl
ZmVyZW5jZXMgdG8gcGVyc2lzdGVudCBzdG9yYWdlDQorICAgICAgICAqLw0KICAgICAgICAgdm9p
ZCBTYXZlTCgpOw0KLSAgICAgICAgVEludCBQcmVmZXJlbmNlTChjb25zdCBURGVzQyYgYU5hbWUs
IFRQdHJDJiBhVmFsdWUpOw0KLSAgICAgICAgdm9pZCBTZXRQcmVmZXJlbmNlTChjb25zdCBURGVz
QyYgYU5hbWUsIGNvbnN0IFREZXNDJiBhVmFsdWUpOw0KKyAgICAgICAgDQorICAgICAgICAvKioN
CisgICAgICAgICogR2V0IHByZWZlcmVuY2UgZm9yIGEgcGFydGljdWxhciBrZXkNCisgICAgICAg
ICovDQorICAgICAgICBUSW50IFByZWZlcmVuY2VMKCBjb25zdCBURGVzQyYgYU5hbWUsIFRQdHJD
JiBhVmFsdWUgKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNldCBwcmVm
ZXJlbmNlIGZvciBhIHBhcnRpY3VsYXIga2V5DQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBT
ZXRQcmVmZXJlbmNlTCggY29uc3QgVERlc0MmIGFOYW1lLCBjb25zdCBURGVzQyYgYVZhbHVlICk7
ICAgDQogDQogICAgIHByb3RlY3RlZDoNCi0gICAgICAgIHZvaWQgRW1wdHkoKTsNCi0gICAgICAg
IHZvaWQgQ3JlYXRlRmlsZVBhdGhMKCk7DQotICAgICAgICBIQnVmQyogTWFrZUtleUxDKGNvbnN0
IFREZXNDJiBhTmFtZSk7DQotDQotICAgIHByb3RlY3RlZDoNCi0gICAgICAgIENXaWRnZXRQcmVm
ZXJlbmNlcyhDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9uKTsNCisgICAgICAgIC8q
Kg0KKyAgICAgICAgKiBDKysgQ29uc3RydWN0b3IgICAgICAgDQorICAgICAgICAqLw0KKyAgICAg
ICAgQ1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
ICk7DQorICAgICAgICANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBTeW1iaWFuIDJuZCBwaGFz
ZSBjb25zdHJ1Y3Rvcg0KKyAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQ29uc3RydWN0TCgpOw0K
IA0KICAgICBwcml2YXRlOg0KLSAgICAgICAgUlB0ckhhc2hNYXA8VERlc0MsVERlc0M+IGlNYXA7
DQotICAgICAgICBSUHRySGFzaE1hcDxURGVzQyxUSW50PiBpU2l6ZU1hcDsNCisgICAgICAgIFJQ
dHJIYXNoTWFwPFREZXNDLENQcmVmRWxlbWVudD4gaVByZWZlcmVuY2VzOw0KICAgICAgICAgSEJ1
ZkMqIGlGaWxlUGF0aDsNCiAgICAgICAgIENXaWRnZXRFeHRlbnNpb24qIGlXaWRnZXRFeHRlbnNp
b247IC8vbm90IG93bmVkDQogICAgICAgICBIQnVmQyogaUJhc2VQYXRoOw0KLQ0KICAgICB9Ow0K
LQ0KKyAgICANCisgICAgDQogI2VuZGlmDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9X
aWRnZXRFeHRlbnNpb24uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XaWRnZXRFeHRlbnNpb24uY3BwCShyZXZpc2lvbiAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00MTIsNyAr
NDEyLDkgQEANCiAgICAgICAgICAgICBwYXJlbnROb2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJv
b3QsIHBhcmVudENtZElkICk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgaWYgKCBwYXJlbnRO
b2RlICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAgbm9kZSA9IHBhcmVudE5vZGUtPkZp
cnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgIGVsc2UNCiAgICAg
ICAgICB7DQpAQCAtNDI4LDcgKzQzMCw5IEBADQogICAgICAgICAgICAgICAgICAwLCBhTWVudVBh
bmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpIC0gMiApOw0KICAgICAgICAgICAgICB9DQogICAgICAg
ICAgaWYgKCBpTWVudVJvb3QgKQ0KLSAgICAgICAgICAgICBub2RlID0gaU1lbnVSb290LT5GaXJz
dENoaWxkKCk7DQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIG5vZGUgPSBpTWVudVJvb3Qt
PkZpcnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogDQogICAgIGlmICgg
bm9kZSApDQpAQCAtNDYyLDEyICs0NjYsMTggQEANCiAgICAgaWYgKCBhTm9kZS0+Rmlyc3RDaGls
ZCgpICkNCiAgICAgICAgIHsNCiAgICAgICAgIGlmICggaVJlc291cmNlSWQgPiBSX0NBU0NBREVf
TUVOVV8xICsgS01heE9wdGlvbnNNZW51ICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAg
bWVudURhdGEuaUNhc2NhZGVJZCA9IDA7DQorICAgICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gaVJlc291
cmNlSWQ7DQorICAgICAgICAgICAgfSAgICAgICAgICAgIA0KICAgICAgICAgfQ0KICAgICBlbHNl
DQorICAgICAgICB7DQogICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gMDsNCisgICAgICAg
IH0gICAgICAgIA0KIA0KICAgICBtZW51RGF0YS5pRmxhZ3MgPSAwOw0KICAgICBtZW51RGF0YS5p
VGV4dCA9IGFOb2RlLT5UZXh0KCk7DQpAQCAtNDc3LDcgKzQ4Nyw3IEBADQogICAgIGVudHJ5LnBh
cmVudENtZElkID0gYU5vZGUtPkNtZElkKCk7DQogICAgIGlDYXNjYWRlQXJyLkFwcGVuZCggZW50
cnkgKTsNCiANCi0gICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIDAgKTsN
CisgICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIGFNZW51UGFuZS5OdW1i
ZXJPZkl0ZW1zSW5QYW5lKCktMSApOw0KICAgICBhTWVudVBhbmUuU2V0SXRlbURpbW1lZCggYU5v
ZGUtPkNtZElkKCkrS01lbnVJdGVtQ29tbWFuZElkQmFzZSwgYU5vZGUtPkRpbW1lZCgpICk7DQog
ICAgIH0NCiANCkBAIC02NTYsMjEgKzY2Niw0MCBAQA0KIC8vDQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiAvLw0KLXZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6QWRkT3B0aW9uc01lbnVJdGVtKA0K
K1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6QWRkT3B0aW9uc01lbnVJdGVtKCANCiAgICAgY29uc3Qg
VERlc0MmIGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50SWQsIHZvaWQqIGFPYmogKQ0K
LSAgICB7DQotICAgIGlmICggIWlNZW51Um9vdCApDQotICAgICAgICB7DQorICAgIHsgICANCisg
ICAgaWYgKCAhaU1lbnVSb290ICkgDQorICAgICAgICB7IA0KICAgICAgICAgaU1lbnVSb290ID0g
Q01lbnVJdGVtOjpOZXdMKCBfTCgiIiksIC0xICk7DQotICAgICAgICB9DQorICAgICAgICB9ICAg
IA0KKyAgICAgICAgDQogICAgIGlmICggYVRleHQuTGVuZ3RoKCkgPiAwICkNCiAgICAgICAgIHsN
CiAgICAgICAgIENNZW51SXRlbSogcGFyZW50ID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFQ
YXJlbnRJZCApOw0KICAgICAgICAgaWYgKCAhcGFyZW50ICkNCi0gICAgICAgICAgICByZXR1cm47
DQotICAgICAgICBDTWVudUl0ZW0qIGl0ZW0gPSBDTWVudUl0ZW06Ok5ld0woIGFUZXh0LCBhQ21k
SWQsIHBhcmVudCwgYU9iaiApOw0KLSAgICAgICAgQXBwZW5kKCBwYXJlbnQsIGl0ZW0gKTsNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEtFcnJHZW5lcmFsOw0KKyAgICAgICAg
ICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCisgICAg
ICAgIGl0ZW0gPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgYUNtZElkICk7ICAgICAgICANCisg
ICAgICAgIGlmICggaXRlbSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBL
RXJyQWxyZWFkeUV4aXN0czsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAN
CisgICAgICAgIGl0ZW0gPSBGaW5kTm9kZUJ5VGV4dCggaU1lbnVSb290LCBhVGV4dCApOw0KKyAg
ICAgICAgaWYgKCBpdGVtICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEtF
cnJBbHJlYWR5RXhpc3RzOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIA0K
KyAgICAgICAgaXRlbSA9IENNZW51SXRlbTo6TmV3TCggYVRleHQsIGFDbWRJZCwgcGFyZW50LCBh
T2JqICk7IA0KKyAgICAgICAgcmV0dXJuIEFwcGVuZCggcGFyZW50LCBpdGVtICk7ICAgIA0KICAg
ICAgICAgfQ0KKyAgICAgICAgDQorICAgIHJldHVybiBLRXJyR2VuZXJhbDsgICAgICAgICAgICAg
ICAgDQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTY5NCwxMSArNzIz
LDEzIEBADQogLy8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotVEJvb2wgQ1dpZGdl
dEV4dGVuc2lvbjo6QXBwZW5kKA0KK1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6QXBwZW5kKCANCiAg
ICAgQ01lbnVJdGVtKiBhUGFyZW50LCBDTWVudUl0ZW0qIGFJdGVtICkNCi0gICAgew0KKyAgICB7
ICANCiAgICAgaWYgKCAhYVBhcmVudCApDQotICAgICAgICByZXR1cm4gRUZhbHNlOw0KKyAgICAg
ICAgew0KKyAgICAgICAgcmV0dXJuIEtFcnJHZW5lcmFsOw0KKyAgICAgICAgfQ0KIA0KICAgICBp
ZiAoIGFQYXJlbnQtPkZpcnN0Q2hpbGQoKSA9PSBOVUxMICkgLy9maXJzdCBjaGlsZA0KICAgICAg
ICAgew0KQEAgLTcwOCw4ICs3MzksOCBAQA0KICAgICAgICAgew0KICAgICAgICAgQXBwZW5kU2li
bGluZyggYVBhcmVudC0+Rmlyc3RDaGlsZCgpLCBhSXRlbSApOw0KICAgICAgICAgfQ0KLSAgICBy
ZXR1cm4gRVRydWU7DQotICAgIH0NCisgICAgcmV0dXJuIEtFcnJOb25lOyAgICAgICAgICAgIA0K
KyAgICB9IA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldEV4dGVuc2lv
bjo6QXBwZW5kU2libGluZw0KQEAgLTc2Niw3ICs3OTcsMTAgQEANCiAgICAgICAgICAgICBDTWVu
dUl0ZW0qIHByZXYgPSBwYXJlbnQtPkZpcnN0Q2hpbGQoKTsNCiAgICAgICAgICAgICBDTWVudUl0
ZW0qIGl0ZW0gPSBOVUxMOw0KICAgICAgICAgICAgIGlmICggcHJldiApDQorICAgICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgICAgaXRlbSA9IHByZXYtPk5leHRTaWJsaW5nKCk7DQorICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgd2hpbGUoIGl0
ZW0gKQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIGlmICggaXRlbS0+Q21k
SWQoKSA9PSBhQ21kSWQgKQ0KQEAgLTgwMiwyMSArODM2LDQxIEBADQogLy8NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQogLy8NCi12b2lkIENXaWRnZXRFeHRlbnNpb246OlJlcGxhY2VNZW51SXRl
bSgNCi0gICAgVEludCBvbGRJdGVtQ21kSWQsDQotICAgIGNvbnN0IFREZXNDJiBuZXdJdGVtVGV4
dCwNCi0gICAgVEludCBuZXdJdGVtQ21kSWQsDQorVEludCBDV2lkZ2V0RXh0ZW5zaW9uOjpSZXBs
YWNlTWVudUl0ZW0oIA0KKyAgICBUSW50IG9sZEl0ZW1DbWRJZCwgDQorICAgIGNvbnN0IFREZXND
JiBuZXdJdGVtVGV4dCwgDQorICAgIFRJbnQgbmV3SXRlbUNtZElkLCANCiAgICAgVEludCBuZXdJ
dGVtRGltbWVkICkNCiAgICAgew0KLSAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KLQ0KLSAg
ICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIG9sZEl0ZW1DbWRJZCApOw0KLSAgICBp
ZiAoIG5vZGUgKQ0KKyAgICBDTWVudUl0ZW0qIG5ld0l0ZW0gPSBOVUxMOw0KKyAgICBDTWVudUl0
ZW0qIG9sZEl0ZW0gPSBOVUxMOw0KKyAgICANCisgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYW5v
dGhlciBub2RlIGluIHRoZSB0cmVlIHdpdGggdGhlIHNhbWUgSWQgYXMgdGhhdCBvZiANCisgICAg
Ly8gbmV3SXRlbSBidXQgYWxsb3cgYSByZXBsYWNlIG9mIG9sZEl0ZW0gd2l0aCB0aGUgc2FtZSBJ
ZCBhcyB0aGUgbmV3SXRlbQ0KKyAgICBuZXdJdGVtID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3Qs
IG5ld0l0ZW1DbWRJZCApOyAgICANCisgICAgaWYgKCBuZXdJdGVtICYmIG5ld0l0ZW0tPkNtZElk
KCkgIT0gb2xkSXRlbUNtZElkICkNCiAgICAgICAgIHsNCi0gICAgICAgIG5vZGUtPlNldFRleHQo
IG5ld0l0ZW1UZXh0ICk7DQotICAgICAgICBub2RlLT5TZXRDbWRJZCggbmV3SXRlbUNtZElkICk7
DQotICAgICAgICBub2RlLT5TZXREaW1tZWQoIG5ld0l0ZW1EaW1tZWQgKTsNCisgICAgICAgIHJl
dHVybiBLRXJyQWxyZWFkeUV4aXN0czsNCiAgICAgICAgIH0NCisgICAgDQorICAgIC8vIGNoZWNr
IGlmIHRoZXJlIGlzIGFub3RoZXIgbm9kZSBpbiB0aGUgdHJlZSB3aXRoIHRoZSBzYW1lIHRleHQg
YXMgdGhhdCBvZiANCisgICAgLy8gbmV3SXRlbSBidXQgYWxsb3cgYSByZXBsYWNlIG9mIG9sZEl0
ZW0gd2l0aCB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBuZXdJdGVtDQorICAgIG5ld0l0ZW0gPSBGaW5k
Tm9kZUJ5VGV4dCggaU1lbnVSb290LCBuZXdJdGVtVGV4dCApOw0KKyAgICBvbGRJdGVtID0gRmlu
ZE5vZGVCeUlkKCBpTWVudVJvb3QsIG9sZEl0ZW1DbWRJZCApOyAgDQorICAgIGlmICggbmV3SXRl
bSAmJiBvbGRJdGVtICYmIG5ld0l0ZW0tPlRleHQoKS5Db21wYXJlKG5ld0l0ZW0tPlRleHQoKSkg
IT0gMCApDQorICAgICAgICB7DQorICAgICAgICByZXR1cm4gS0VyckFscmVhZHlFeGlzdHM7DQor
ICAgICAgICB9DQorICAgICAgDQorICAgIGlmICggb2xkSXRlbSApDQorICAgICAgICB7DQorICAg
ICAgICBvbGRJdGVtLT5TZXRUZXh0KCBuZXdJdGVtVGV4dCApOyAgICANCisgICAgICAgIG9sZEl0
ZW0tPlNldENtZElkKCBuZXdJdGVtQ21kSWQgKTsgICANCisgICAgICAgIG9sZEl0ZW0tPlNldERp
bW1lZCggbmV3SXRlbURpbW1lZCApOw0KKyAgICAgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICAg
ICAgfQ0KKyAgICAgICAgDQorICAgIHJldHVybiBLRXJyR2VuZXJhbDsgICAgICAgIA0KICAgICB9
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTg2MCw5ICs5MTQsMTMgQEANCiANCiAg
ICAgbm9kZSA9IEZpbmROb2RlQnlUZXh0KCBpTWVudVJvb3QsIHRleHRWYWwgKTsNCiAgICAgaWYg
KCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVybiBub2RlLT5PYmooKTsNCisgICAg
ICAgIH0NCiAgICAgZWxzZQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAg
ICAgICB9ICAgICAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC04
NzcsMTAgKzkzNSwxNSBAQA0KICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KIA0KICAgICBu
b2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGNtZElkICk7DQorICAgIA0KICAgICBpZiAo
IG5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIG5vZGUtPk9iaigpOw0KKyAgICAg
ICAgfQ0KICAgICBlbHNlDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gTlVMTDsNCisgICAg
ICAgIH0gICAgICAgIA0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTg5
NCw4ICs5NTcsMTEgQEANCiAgICAgew0KICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KICAg
ICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJZCApOw0KKyAgICANCiAgICAg
aWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIG5vZGUtPlNldERpbW1lZCggYVZhbHVl
ICk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAt
OTEwLDggKzk3NiwxMSBAQA0KICAgICB7DQogICAgIENNZW51SXRlbSogbm9kZSA9IE5VTEw7DQog
ICAgIG5vZGUgPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgYUNtZElkICk7DQorICAgIA0KICAg
ICBpZiAoIG5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgbm9kZS0+U2V0Q2FsbGJhY2soIGFP
blNlbGVjdENhbGxiYWNrICk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQpAQCAtOTI1LDEwICs5OTQsMTUgQEANCiAgICAgew0KICAgICBDTWVudUl0ZW0q
IG5vZGUgPSBOVUxMOw0KICAgICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJ
ZCApOw0KKyAgICANCiAgICAgaWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVy
biBub2RlLT5DYWxsYmFjaygpOw0KKyAgICAgICAgfQ0KICAgICBlbHNlDQorICAgICAgICB7DQog
ICAgICAgICByZXR1cm4gTlVMTDsNCisgICAgICAgIH0gICAgICAgIA0KICAgICB9DQogDQogDQpA
QCAtMTAwOCw3ICsxMDgyLDkgQEANCiAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCiANCiAg
ICAgaWYgKCAhbm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gaXRlbTsNCisgICAg
ICAgIH0NCiANCiAgICAgaWYgKCBub2RlLT5DbWRJZCgpID09IGFDbWRJZCApDQogICAgICAgICB7
DQpAQCAtMTA0Miw3ICsxMTE4LDkgQEANCiAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCiAN
CiAgICAgaWYgKCAhbm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gaXRlbTsNCisg
ICAgICAgIH0NCiANCiAgICAgaWYgKCBub2RlLT5UZXh0KCkuQ29tcGFyZSggYVRleHQgKSA9PSAw
ICkNCiAgICAgICAgIHsNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldFByZWZl
cmVuY2VzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2lkZ2V0
UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcv
c3JjL1dpZGdldFByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYwLDkgKzYwLDkg
QEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2VzOjpO
ZXdMDQorLy8gVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvcg0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCiBDV2lkZ2V0UHJlZmVyZW5jZXMqIENXaWRnZXRQcmVmZXJlbmNlczo6
TmV3TCggDQogICAgIENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24gKQ0KQEAgLTc1
LDkgKzc1LDkgQEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZl
cmVuY2VzOjpOZXdMQw0KKy8vIFR3by1waGFzZWQgY29uc3RydWN0b3INCiAvLw0KIC8vDQotLy8N
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogQ1dpZGdldFByZWZlcmVuY2VzKiBDV2lkZ2V0UHJl
ZmVyZW5jZXM6Ok5ld0xDKCANCiAgICAgQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVuc2lv
biApDQpAQCAtOTEsMzUgKzkxLDMzIEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8v
IENXaWRnZXRQcmVmZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzDQorLy8gQysrIENvbnN0cnVj
dG9yDQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVm
ZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0
ZW5zaW9uICkNCiAgICAgOiBpV2lkZ2V0RXh0ZW5zaW9uKCAmYVdpZGdldEV4dGVuc2lvbiApDQot
ICAgIHsNCisgICAgeyAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAv
LyBDV2lkZ2V0UHJlZmVyZW5jZXM6On5DV2lkZ2V0UHJlZmVyZW5jZXMNCisvLyBEZXN0cnVjdG9y
DQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVmZXJl
bmNlczo6fkNXaWRnZXRQcmVmZXJlbmNlcygpDQogICAgIHsNCi0gICAgaU1hcC5SZXNldEFuZERl
c3Ryb3koKTsNCi0gICAgaU1hcC5DbG9zZSgpOw0KLSAgICBpU2l6ZU1hcC5SZXNldEFuZERlc3Ry
b3koKTsNCi0gICAgaVNpemVNYXAuQ2xvc2UoKTsNCisgICAgaVByZWZlcmVuY2VzLlJlc2V0QW5k
RGVzdHJveSgpOw0KKyAgICBpUHJlZmVyZW5jZXMuQ2xvc2UoKTsNCiAgICAgZGVsZXRlIGlCYXNl
UGF0aDsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJl
ZmVyZW5jZXM6OkNvbnN0cnVjdEwNCisvLyBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3Rvcg0K
IC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENXaWRnZXRQcmVm
ZXJlbmNlczo6Q29uc3RydWN0TCgpDQogICAgIHsNCkBAIC0xMjcsNDMgKzEyNSw0OSBAQA0KIA0K
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlByZWZlcmVu
Y2VMDQorLy8gR2V0IHByZWZlcmVuY2UgZm9yIGEga2V5DQogLy8NCiAvLw0KLS8vDQogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KIFRJbnQgQ1dpZGdldFByZWZlcmVuY2VzOjpQcmVmZXJlbmNlTCgg
Y29uc3QgVERlc0MmIGFLZXksIFRQdHJDJiBhVmFsdWUgKQ0KICAgICB7DQorICAgIFRJbnQgclN1
Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQorICAgIFRJbnQgaSA9IDA7DQorICAgIFRJbnQgc2l6ZSA9
IDA7DQorICAgIA0KICAgICBpZiAoICFpQmFzZVBhdGggJiYgKCBpV2lkZ2V0RXh0ZW5zaW9uLT5X
aWRnZXRCYXNlUGF0aCgpLkxlbmd0aCgpID4gMCApICkNCiAgICAgICAgIGlCYXNlUGF0aCA9IGlX
aWRnZXRFeHRlbnNpb24tPldpZGdldEJhc2VQYXRoKCkuQWxsb2NMKCk7DQogDQotICAgIFRJbnQg
clN1Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQotDQorIA0KICAgICBpZiAoIGFLZXkuTGVuZ3RoKCkg
PD0gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICB7DQogICAgICAgICBIQnVmQyoga2V5ID0g
SEJ1ZkM6Ok5ld0xDKCBhS2V5Lkxlbmd0aCgpICsgS01heEludExlbmd0aCArIDEgKTsNCiAgICAg
ICAgIGtleS0+RGVzKCkuRm9ybWF0KCBLS2V5Rm9ybWF0LCBpV2lkZ2V0RXh0ZW5zaW9uLT5HZXRX
aWRnZXRJZCgpLCAmYUtleSApOw0KLSAgICAgICAgVEludCogc2l6ZSA9IGlTaXplTWFwLkZpbmQo
ICprZXkgKTsNCi0gICAgICAgIFREZXNDKiByZXMgPSBpTWFwLkZpbmQoICprZXkgKTsNCi0NCi0g
ICAgICAgIGlmICggIXJlcyB8fCAhc2l6ZSApDQorICAgICAgICANCisgICAgICAgIENQcmVmRWxl
bWVudCogcHJlZiA9IGlQcmVmZXJlbmNlcy5GaW5kKCAqa2V5ICk7DQorICAgICAgICAgICAgICAg
IA0KKyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICBpZiAoICFwcmVmICkNCiAgICAgICAg
ICAgICB7DQogICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCBrZXkgKTsN
CiAgICAgICAgICAgICByZXR1cm4gclN1Y2Nlc3M7DQogICAgICAgICAgICAgfQ0KKyAgICAgICAg
ICAgIA0KKyAgICAgICAgc2l6ZSA9IHByZWYtPlZhbHVlU2l6ZSgpOw0KKyAgICAgICAgICAgIA0K
IA0KLSAgICAgICAgaWYgKCAqc2l6ZSA+IEtNYXhLZXlWYWx1ZVNpemUgKQ0KKyAgICAgICAgaWYg
KCBzaXplID4gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAg
IC8vIHJldHVybiBjb250ZW50cyBmcm9tIHRlbXAgZmlsZSB3aG9zZSBuYW1lIGlzIHN0b3JlZCAN
Ci0gICAgICAgICAgICAvLyBpbiB0aGUgdmFsdWUgZmllbGQgb2YgaU1hcA0KKyAgICAgICAgICAg
IC8vIGluIHRoZSBpVmFsdWUgbWVtYmVyIG9mIGlQcmVmZXJlbmNlcw0KICAgICAgICAgICAgIFJG
cyBmczsNCiANCiAgICAgICAgICAgICBpZiAoIGZzLkNvbm5lY3QoKSA9PSBLRXJyTm9uZSApDQog
ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIGZz
ICk7DQotICAgICAgICAgICAgICAgIEhCdWZDKiBmaWxlUGF0aCA9IEhCdWZDOjpOZXdMQyggcmVz
LT5MZW5ndGgoKSApOw0KLQ0KKyAgICAgICAgICAgICAgICBIQnVmQyogZmlsZVBhdGggPSBIQnVm
Qzo6TmV3TEMoIHByZWYtPlZhbHVlKCkuTGVuZ3RoKCkgKTsNCiAgICAgICAgICAgICAgICAgVFB0
ciBmTmFtZSggZmlsZVBhdGgtPkRlcygpICk7DQotICAgICAgICAgICAgICAgIGZOYW1lLkFwcGVu
ZCggKnJlcyApOw0KKyAgICAgICAgICAgICAgICBmTmFtZS5BcHBlbmQoIHByZWYtPlZhbHVlKCkg
KTsNCiANCiAgICAgICAgICAgICAgICAgUkZpbGVSZWFkU3RyZWFtIHJlYWRTdHJlYW07DQogDQpA
QCAtMTg0LDE2ICsxODgsMTYgQEANCiAgICAgICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOy8vcmVhZFN0cmVhbQ0KICAgICAgICAgICAgICAgICAgICAgfSAgIA0K
IA0KLSAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koMik7IC8vZmls
ZVBhdGgsZnMNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCAy
ICk7IC8vZmlsZVBhdGgsZnMNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIH0gICAg
ICAgIA0KLSAgICAgICAgZWxzZSBpZiAoICpzaXplID49IDAgKQ0KKyAgICAgICAgZWxzZSBpZiAo
IHNpemUgPj0gMCApDQogICAgICAgICAgICAgew0KLSAgICAgICAgICAgIGFWYWx1ZS5TZXQoICpy
ZXMgKTsNCisgICAgICAgICAgICBhVmFsdWUuU2V0KCBwcmVmLT5WYWx1ZSgpICk7DQogICAgICAg
ICAgICAgclN1Y2Nlc3MgPSBLRXJyTm9uZTsNCiAgICAgICAgICAgICB9DQogDQotICAgICAgICBD
bGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koa2V5KTsNCisgICAgICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgga2V5ICk7DQogICAgICAgICB9DQogDQogICAgIHJldHVybiByU3VjY2Vz
czsNCkBAIC0yMDEsOSArMjA1LDkgQEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8g
Q1dpZGdldFByZWZlcmVuY2VzOjpTZXRQcmVmZXJlbmNlTA0KKy8vIFNldCBQcmVmZXJlbmNlIGZv
ciBhIGtleQ0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENX
aWRnZXRQcmVmZXJlbmNlczo6U2V0UHJlZmVyZW5jZUwoIA0KICAgICBjb25zdCBURGVzQyYgYUtl
eSwgY29uc3QgVERlc0MmIGFWYWx1ZSApDQpAQCAtMjE4LDE5ICsyMjIsMTcgQEANCiANCiAgICAg
ICAgIGlmICggYVZhbHVlLkxlbmd0aCgpIDw9IEtNYXhLZXlWYWx1ZVNpemUgKQ0KICAgICAgICAg
ICAgIHsNCi0gICAgICAgICAgICBIQnVmQyogdmFsdWUgPSBhVmFsdWUuQWxsb2NMQygpOw0KLSAg
ICAgICAgICAgIGlNYXAuSW5zZXJ0TCgga2V5LCB2YWx1ZSApOw0KLSAgICAgICAgICAgIFRJbnQq
IHNpemUgPSBuZXcgVEludChhVmFsdWUuTGVuZ3RoKCkpOw0KLSAgICAgICAgICAgIC8vIG1ha2Ug
YSBjb3B5IG9mIGtleSBhbmQgaW5zZXJ0IHRoYXQNCi0gICAgICAgICAgICBIQnVmQyogbmV3S2V5
ID0ga2V5LT5BbGxvY0xDKCk7DQotICAgICAgICAgICAgaVNpemVNYXAuSW5zZXJ0TCggbmV3S2V5
LCBzaXplICk7DQotICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoIDMgKTsvL25ld0tleSx2
YWx1ZSxrZXkgICAgICAgICAgIA0KKyAgICAgICAgICAgIENQcmVmRWxlbWVudCogcHJlZiA9IG5l
dyAoRUxlYXZlKSBDUHJlZkVsZW1lbnQ7ICAgICAgDQorICAgICAgICAgICAgcHJlZi0+U2V0VmFs
dWVMKCBhVmFsdWUgKTsNCisgICAgICAgICAgICBwcmVmLT5TZXRWYWx1ZVNpemUoIGFWYWx1ZS5M
ZW5ndGgoKSApOyAgICANCisgICAgICAgICAgICBpUHJlZmVyZW5jZXMuSW5zZXJ0TCgga2V5LCBw
cmVmICk7DQorICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoIGtleSApOyAgIA0KICAgICAg
ICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICB9DQogICAgICAgICBlbHNlDQogICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRlbXAgZmlsZSBhbmQgc2F2ZSB0aGUgdmFs
dWUgaW4gdGVtcCBmaWxlLiANCi0gICAgICAgICAgICAvLyBpTWFwIHZhbHVlIGZpZWxkIGNvbnRh
aW5zIHRoZSB0ZW1wIGZpbGUgbmFtZS4NCisgICAgICAgICAgICAvLyBpVmFsdWUgbWVtYmVyIG9m
IENQcmVmRWxlbWVudCBjb250YWlucyB0aGUgdGVtcCBmaWxlIG5hbWUuDQogICAgICAgICAgICAg
UkZzIGZzOw0KICAgICAgICAgICAgIFJGaWxlIGZpbGU7DQogDQpAQCAtMjQ2LDIwICsyNDgsMTYg
QEANCiANCiAgICAgICAgICAgICAgICAgVFB0ciBmTmFtZSggZmlsZVBhdGgtPkRlcygpICk7DQog
ICAgICAgICAgICAgICAgIGZOYW1lLkFwcGVuZCggdGVtcEZpbGVOYW1lICk7DQotICAgICAgICAg
ICAgICAgIGlNYXAuSW5zZXJ0TCgga2V5LCBmaWxlUGF0aCApOw0KLSAgICAgICAgICAgICAgICBU
SW50KiBzaXplID0gbmV3IFRJbnQoIGFWYWx1ZS5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAg
ICAvLyBtYWtlIGEgY29weSBvZiBrZXkgYW5kIGluc2VydCB0aGF0DQotICAgICAgICAgICAgICAg
IEhCdWZDKiBuZXdLZXkgPSBrZXktPkFsbG9jTEMoKTsNCi0gICAgICAgICAgICAgICAgaVNpemVN
YXAuSW5zZXJ0TCggbmV3S2V5LCBzaXplICk7DQotDQorICAgICAgICAgICAgICAgIENQcmVmRWxl
bWVudCogcHJlZiA9IG5ldyAoIEVMZWF2ZSApIENQcmVmRWxlbWVudDsgICAgICANCisgICAgICAg
ICAgICAgICAgcHJlZi0+U2V0VmFsdWVMKCAqZmlsZVBhdGggKTsgICAgICAgICAgICAgICANCisg
ICAgICAgICAgICAgICAgcHJlZi0+U2V0VmFsdWVTaXplKCBhVmFsdWUuTGVuZ3RoKCkgKTsgICAg
DQorICAgICAgICAgICAgICAgIGlQcmVmZXJlbmNlcy5JbnNlcnRMKCBrZXksIHByZWYgKTsNCiAg
ICAgICAgICAgICAgICAgUkZpbGVXcml0ZVN0cmVhbSB3cml0ZVN0cmVhbSggZmlsZSApOw0KICAg
ICAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsgICAgICAgIA0K
ICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUludDMyTCggYVZhbHVlLkxlbmd0aCgp
ICk7DQogICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlTCggYVZhbHVlICk7ICAgICAg
ICAgICAgIA0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Db21taXRMKCk7DQotICAgICAg
ICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvL3dyaXRlU3RyZWFtDQot
ICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCAyICk7Ly9uZXdLZXksZmlsZVBhdGgN
Ci0gICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCAyICk7IC8vZmls
ZSxmcw0KKyAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koIDQgKTsg
Ly93cml0ZVN0cmVhbSxmaWxlUGF0aCxmaWxlLGZzIA0KICAgICAgICAgICAgICAgICBDbGVhbnVw
U3RhY2s6OlBvcCgga2V5ICk7DQogICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAg
ICAgICAgfSAgICAgICAgICAgDQpAQCAtMjcxLDkgKzI2OSw5IEBADQogDQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KIC8vIENXaWRnZXRQcmVmZXJlbmNlczo6U2F2ZUwNCisvLyBTQXZlIHByZWZl
cmVuY2VzIHRvIHBlcnNpc3RlbnQgc3RvcmFnZQ0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCiB2b2lkIENXaWRnZXRQcmVmZXJlbmNlczo6U2F2ZUwoKQ0KICAgICB7DQpA
QCAtMzA1LDI0ICszMDMsMjEgQEANCiAgICAgICAgIGlmICggZmlsZWVycm9yID09IEtFcnJOb25l
ICkNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRl
U3RyZWFtICk7DQotICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGlNYXAuQ291
bnQoKSApOw0KLQ0KLSAgICAgICAgICAgIFRQdHJIYXNoTWFwSXRlcjxURGVzQyxURGVzQz4gaXQo
IGlNYXAgKTsNCisgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUludDMyTCggaVByZWZlcmVu
Y2VzLkNvdW50KCkgKTsNCisgICAgICAgICAgICANCisgICAgICAgICAgICBUUHRySGFzaE1hcEl0
ZXI8VERlc0MsQ1ByZWZFbGVtZW50PiBpdCggaVByZWZlcmVuY2VzICk7DQogICAgICAgICAgICAg
Y29uc3QgVERlc0MqIGtleTsNCi0gICAgICAgICAgICBjb25zdCBURGVzQyogdmFsdWU7DQorICAg
ICAgICAgICAgY29uc3QgQ1ByZWZFbGVtZW50KiBwcmVmOw0KIA0KKw0KICAgICAgICAgICAgIHdo
aWxlICggKCBrZXkgPSBpdC5OZXh0S2V5KCkgKSAhPSAwICkNCiAgICAgICAgICAgICAgICAgew0K
LSAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0LkN1cnJlbnRWYWx1ZSgpOw0KKyAgICAgICAgICAg
ICAgICBwcmVmID0gaXQuQ3VycmVudFZhbHVlKCk7DQogICAgICAgICAgICAgICAgIHdyaXRlU3Ry
ZWFtLldyaXRlSW50MzJMKCBrZXktPkxlbmd0aCgpICk7DQogICAgICAgICAgICAgICAgIHdyaXRl
U3RyZWFtLldyaXRlTCggKmtleSApOw0KLSAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0
ZUludDMyTCggdmFsdWUtPkxlbmd0aCgpICk7DQotICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFt
LldyaXRlTCggKnZhbHVlICk7DQotICAgICAgICAgICAgICAgIFRJbnQqIHNpemUgPSBpU2l6ZU1h
cC5GaW5kKCAqa2V5ICk7DQotICAgICAgICAgICAgICAgIGlmICggc2l6ZSApDQotICAgICAgICAg
ICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUludDMyTCggKnNpemUgKTsNCi0gICAgICAgICAg
ICAgICAgZWxzZQ0KLSAgICAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwo
IDAgKTsNCisgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIHByZWYtPlZh
bHVlKCkuTGVuZ3RoKCkgKTsNCisgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVMKCBw
cmVmLT5WYWx1ZSgpICk7ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB3cml0ZVN0
cmVhbS5Xcml0ZUludDMyTCggcHJlZi0+VmFsdWVTaXplKCkgKTsgICAgICAgICAgICAgDQogICAg
ICAgICAgICAgICAgIH0NCiANCiAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Db21taXRMKCk7DQpA
QCAtMzM1LDkgKzMzMCw5IEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXaWRn
ZXRQcmVmZXJlbmNlczo6TG9hZEwNCisvLyBMb2FkIHByZWZlcmVuY2VzIGZyb20gcGVyc2lzdGVu
dCBzdG9yYWdlDQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIHZvaWQg
Q1dpZGdldFByZWZlcmVuY2VzOjpMb2FkTCgpDQogICAgIHsNCkBAIC0zNzgsMTIgKzM3MywxNSBA
QA0KICAgICAgICAgICAgICAgICAgICAgICAgIEhCdWZDKiB2YWx1ZSA9IEhCdWZDOjpOZXdMQygg
bGVuICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgVFB0ciBwdHJ2YWx1ZSA9IHZhbHVlLT5E
ZXMoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkU3RyZWFtLlJlYWRMKCBwdHJ2YWx1
ZSwgbGVuICk7DQotICAgICAgICAgICAgICAgICAgICAgICAgaU1hcC5JbnNlcnRMKCBrZXksIHZh
bHVlICk7DQotICAgICAgICAgICAgICAgICAgICAgICAgVEludCAqc2l6ZSA9IG5ldyBUSW50ICgg
cmVhZFN0cmVhbS5SZWFkSW50MzJMKCkgKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBt
YWtlIGEgY29weSBvZiBrZXkgYW5kIGluc2VydCB0aGF0DQotICAgICAgICAgICAgICAgICAgICAg
ICAgSEJ1ZkMqIG5ld0tleSA9IGtleS0+QWxsb2NMQygpOw0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlTaXplTWFwLkluc2VydEwoIG5ld0tleSwgc2l6ZSApOw0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIENsZWFudXBTdGFjazo6UG9wKCAzICk7IC8vbmV3S2V5LHZhbHVlLGtleQ0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIENQcmVmRWxlbWVudCogcHJlZiA9IG5ldyAoIEVMZWF2ZSApIENQ
cmVmRWxlbWVudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAg
ICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBwcmVmICk7DQorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJlZi0+U2V0VmFsdWVMKCBwdHJ2YWx1ZSApOw0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIFRJbnQgc2l6ZSA9IHJlYWRTdHJlYW0uUmVhZEludDMyTCgpOw0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlU2l6ZSggc2l6ZSApOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlQcmVmZXJlbmNlcy5JbnNlcnRMKCBrZXksIHByZWYgKTsNCisgICAgICAgICAgICAgICAg
ICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOyAvL3ByZWYgDQorICAgICAgICAgICAgICAgICAg
ICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vdmFsdWUNCisgICAgICAgICAg
ICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOyAvL2tleQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAg
ICAgICAgICB7DQpAQCAtNDAyLDQgKzQwMCw1NSBAQA0KICAgICAgICAgQ2xlYW51cFN0YWNrOjpQ
b3BBbmREZXN0cm95KCAyICk7IC8vZnMsZmlsZVBhdGgNCiAgICAgICAgIH0NCiAgICAgfQ0KKyAg
ICANCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1ByZWZFbGVtZW50OjpDUHJlZkVsZW1l
bnQNCisvLyBDKysgY29uc3RydWN0b3INCisvLw0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAgICANCitDUHJlZkVsZW1lbnQ6OkNQcmVmRWxlbWVudCgpDQorCXsNCisJfQ0KIA0KKyAgICAN
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1ByZWZFbGVtZW50Ojp+Q1ByZWZFbGVtZW50
DQorLy8gRGVzdHJ1Y3Rvcg0KKy8vDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorQ1By
ZWZFbGVtZW50Ojp+Q1ByZWZFbGVtZW50KCkNCisJew0KKwlkZWxldGUgaVZhbHVlOw0KKwl9DQor
CQ0KKwkJDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENQcmVmRWxlbWVudDo6U2V0VmFs
dWVMDQorLy8gU2V0IHZhbHVlIGZvciBhIHByZWZlcmVuY2UNCisvLw0KKy8vDQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KK3ZvaWQgQ1ByZWZFbGVtZW50OjpTZXRWYWx1ZUwoIGNvbnN0IFREZXND
JiBhVmFsdWUgKQ0KKwl7DQorCWlmICggIWlWYWx1ZSApDQorCQl7DQorCQlpVmFsdWUgID0gSEJ1
ZkM6Ok5ld0woIGFWYWx1ZS5MZW5ndGgoKSApOw0KKwkJKmlWYWx1ZSA9IGFWYWx1ZTsJDQorCQly
ZXR1cm47DQorCQl9DQorDQorCWlmICggYVZhbHVlLkxlbmd0aCgpID4gaVZhbHVlLT5MZW5ndGgo
KSApDQorCQl7DQorCQlkZWxldGUgaVZhbHVlOw0KKwkJaVZhbHVlICA9IEhCdWZDOjpOZXdMKCBh
VmFsdWUuTGVuZ3RoKCkgKTsNCisJCSppVmFsdWUgPSBhVmFsdWU7DQorCQl9DQorCWVsc2UNCisJ
CXsNCisJCSppVmFsdWUgPSBhVmFsdWU7DQorCQlpZiAoIGFWYWx1ZS5MZW5ndGgoKSA8IGlWYWx1
ZS0+TGVuZ3RoKCkgKQ0KKwkJCWlWYWx1ZSAgPSBpVmFsdWUtPlJlQWxsb2NMKCBhVmFsdWUuTGVu
Z3RoKCkgKTsgLy8gcmVjbGFpbSBzcGFjZQ0KKwkJfQ0KKwl9DQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUNCg==
</data>
<flag name="review"
          id="6289"
          type_id="1"
          status="-"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15245</attachid>
            <date>2007-06-26 07:33:14 -0700</date>
            <delta_ts>2007-06-27 08:01:14 -0700</delta_ts>
            <desc>3.2 patch for menu api enhancement</desc>
            <filename>widget_menu_enh_3.2.patch</filename>
            <type>text/plain</type>
            <size>25403</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCShyZXZpc2lv
biAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oCSh3
b3JraW5nIGNvcHkpDQpAQCAtMTg5LDkgKzE4OSw5IEBADQogICAgICAgICAqIEBwYXJhbSB0ZXh0
IGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhlIG1haW4gYXJlYSBvZiB0aGUgbWVudSBpdGVtDQogICAg
ICAgICAqIEBwYXJhbSBJRCBvZiB0aGUgY29tbWFuZCB0byBpc3N1ZSB3aGVuIHRoZSBtZW51IGl0
ZW0gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIHBhcmVu
dCBtZW51IGl0ZW0NCi0gICAgICAgICogQHJldHVybiBub25lDQorICAgICAgICAqIEByZXR1cm4g
RXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAgICAgIHZvaWQgQWRkT3B0aW9uc01lbnVJdGVt
KCBjb25zdCBURGVzQyYgYVRleHQsIFRJbnQgYUNtZElkLCBUSW50IGFQYXJlbnRDbWRJZCwgdm9p
ZCogb2JqICk7DQorICAgICAgICBUSW50IEFkZE9wdGlvbnNNZW51SXRlbSggY29uc3QgVERlc0Mm
IGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50Q21kSWQsIHZvaWQqIG9iaiApOw0KIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIE1ldGhvZCBTZXRSaWdodFNvZnRLZXlMYWJlbA0KQEAg
LTIyNCw5ICsyMjQsOSBAQA0KICAgICAgICAgKiBAcGFyYW0gdGV4dC9sYWJlbCBmb3IgdGhlIG5l
dyBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGNvbW1hbmQgSUQgb2YgdGhlIG5ldyBtZW51
IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGRpbW1lZCBzdGF0dXMNCi0gICAgICAgICogQHJldHVy
biBub25lDQorICAgICAgICAqIEByZXR1cm4gRXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAg
ICAgIHZvaWQgUmVwbGFjZU1lbnVJdGVtKCBUSW50IG9sZENtZElkLCBjb25zdCBURGVzQyYgbmV3
VGV4dCwgDQorICAgICAgICBUSW50IFJlcGxhY2VNZW51SXRlbSggVEludCBvbGRDbWRJZCwgY29u
c3QgVERlc0MmIG5ld1RleHQsIA0KICAgICAgICAgICAgIFRJbnQgbmV3Q21kSWQsIFRJbnQgbmV3
RGltbWVkICk7DQogDQogICAgICAgICAvKioNCkBAIC01NDIsOSArNTQyLDkgQEANCiAgICAgICAg
ICogQHNpbmNlIDMuMg0KICAgICAgICAgKiBAcGFyYW0gcGFyZW50IG1lbnUgaXRlbQ0KICAgICAg
ICAgKiBAcGFyYW0gbWVudSBpdGVtIHRvIGJlIGluc2VydGVkDQotICAgICAgICAqIEByZXR1cm4g
VEJvb2wNCisgICAgICAgICogQHJldHVybiBlcnJvciBjb2RlDQogICAgICAgICAqLw0KLSAgICAg
ICAgVEJvb2wgQXBwZW5kKCBDTWVudUl0ZW0qIHJvb3QsIENNZW51SXRlbSogaXRlbSApOw0KKyAg
ICAgICAgVEludCBBcHBlbmQoIENNZW51SXRlbSogcm9vdCwgQ01lbnVJdGVtKiBpdGVtICk7DQog
DQogICAgICAgICAvKg0KICAgICAgICAgKiBNZXRob2QgQXBwZW5kU2libGluZw0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjM3
NjMpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRnZXRQcmVmZXJlbmNlcy5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNTcsNyArNTcsNzcgQEANCiBjbGFzcyBDV2lkZ2V0RXh0ZW5zaW9uOw0K
IA0KIC8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQogLyoqDQorKiAgQ1ByZWZFbGVtZW50DQorKg0K
KyogIEBsaWIgd2lkZ2V0ZW5naW5lLmRsbA0KKyogIEBzaW5jZSAzLjINCisqLw0KK2NsYXNzIENQ
cmVmRWxlbWVudCA6IHB1YmxpYyBDQmFzZQ0KKwl7DQorcHVibGljIDoNCisgICAgLyoqDQorICAg
ICogQ29uc3RydWN0b3IuDQorICAgICovDQorCUNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoqDQor
ICAgICogRGVzdHJ1Y3Rvci4NCisgICAgKi8NCisJfkNQcmVmRWxlbWVudCgpOw0KKwkNCisJLyoq
DQorCSogU2V0VmFsdWVMDQorICAgICogU2V0IHZhbHVlIGZvciBhIHByZWZlcmVuY2UNCisgICAg
KiBAcGFyYW0gY29uc3QgVERlc0MmIGFWYWx1ZSAtIFRoZSB2YWx1ZSB0byBiZSBzZXQNCisgICAg
KiBAcmV0dXJuIG5vbmUNCisgICAgKi8NCisJdm9pZCBTZXRWYWx1ZUwoIGNvbnN0IFREZXNDJiBh
VmFsdWUgKTsNCisJDQorICAgIC8qKg0KKwkqIFNldFZhbHVlU2l6ZQ0KKyAgICAqIFNldCBsZW5n
dGggb2YgdmFsdWUgDQorICAgICogQHBhcmFtIGNvbnN0IFRJbnQgYVNpemUgLSBUaGUgbGVuZ3Ro
IHRvIGJlIHNldA0KKyAgICAqIEByZXR1cm4gbm9uZQ0KKyAgICAqLw0KKwl2b2lkIFNldFZhbHVl
U2l6ZSggY29uc3QgVEludCBhU2l6ZSApDQorCSAgICB7DQorCSAgICBpVmFsdWVTaXplID0gYVNp
emU7DQorCSAgICB9DQorCSAgICANCisgICAgLyoqDQorCSogR2V0VmFsdWUNCisgICAgKiBHZXQg
dmFsdWUgZm9yIGEgcHJlZmVyZW5jZQ0KKyAgICAqIEBwYXJhbSBub25lDQorICAgICogQHJldHVy
biBjb25zdCBURGVzQyYgLSB2YWx1ZSBmb3IgdGhlIHByZWZlcmVuY2UNCisgICAgKi8JICAgIA0K
Kwljb25zdCBURGVzQyYgVmFsdWUoKSBjb25zdA0KKwkgICAgew0KKwkgICAgaWYgKCBpVmFsdWUg
KSANCisJICAgICAgICByZXR1cm4gKmlWYWx1ZTsNCisgICAgICAgIGVsc2UgDQorICAgICAgICAg
ICAgcmV0dXJuIEtOdWxsRGVzQygpOw0KKwkgICAgfQ0KKwkgICAgDQorICAgIC8qKg0KKwkqIEdl
dFZhbHVlU2l6ZQ0KKyAgICAqIEdldCBsZW5ndGggb2YgdmFsdWUNCisgICAgKiBAcGFyYW0gbm9u
ZQ0KKyAgICAqIEByZXR1cm4gVEludCAtIGxlbmd0aCBvZiB2YWx1ZSBmb3IgdGhlIHByZWZlcmVu
Y2UNCisgICAgKi8JICAgIA0KKwlUSW50IFZhbHVlU2l6ZSgpIGNvbnN0DQorCSAgICB7DQorCSAg
ICByZXR1cm4gaVZhbHVlU2l6ZTsNCisJICAgIH0NCisJICAgIA0KK3ByaXZhdGUgOg0KKwlIQnVm
QyogIGlWYWx1ZTsgICAgIC8vIHZhbHVlIG9mIHRoZSBwcmVmZXJlbmNlDQorCVRJbnQgICAgaVZh
bHVlU2l6ZTsgLy8gbGVuZ3RoIG9mIHRoZSB2YWx1ZQ0KKwl9Ow0KKw0KKw0KKy8qKg0KICogIENX
aWRnZXRQcmVmZXJlbmNlcw0KICoNCiAqICBAbGliIHdpZGdldGVuZ2luZS5kbGwNCkBAIC02Nywz
MiArMTM3LDU1IEBADQogICAgIHsNCiANCiAgICAgcHVibGljOg0KLSAgICAgICAgc3RhdGljIENX
aWRnZXRQcmVmZXJlbmNlcyogTmV3TChDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
KTsNCi0gICAgICAgIHN0YXRpYyBDV2lkZ2V0UHJlZmVyZW5jZXMqIE5ld0xDKENXaWRnZXRFeHRl
bnNpb24mIGFXaWRnZXRFeHRlbnNpb24pOw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFR3by1w
aGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENXaWRnZXRQ
cmVmZXJlbmNlcyogTmV3TCggQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVuc2lvbiApOw0K
KyAgICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyogTmV3TEMoIENXaWRnZXRFeHRlbnNp
b24mIGFXaWRnZXRFeHRlbnNpb24gKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KICAgICAgICAgfkNXaWRnZXRQcmVmZXJlbmNl
cygpOw0KIA0KICAgICBwdWJsaWM6DQorICAgICAgICAvKioNCisgICAgICAgICogTG9hZCBwcmVm
ZXJlbmNlcyBmcm9tIHBlcnNpc3RlbnQgc3RvcmFnZQ0KKyAgICAgICAgKi8NCiAgICAgICAgIHZv
aWQgTG9hZEwoKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNhdmUgcHJl
ZmVyZW5jZXMgdG8gcGVyc2lzdGVudCBzdG9yYWdlDQorICAgICAgICAqLw0KICAgICAgICAgdm9p
ZCBTYXZlTCgpOw0KLSAgICAgICAgVEludCBQcmVmZXJlbmNlTChjb25zdCBURGVzQyYgYU5hbWUs
IFRQdHJDJiBhVmFsdWUpOw0KLSAgICAgICAgdm9pZCBTZXRQcmVmZXJlbmNlTChjb25zdCBURGVz
QyYgYU5hbWUsIGNvbnN0IFREZXNDJiBhVmFsdWUpOw0KKyAgICAgICAgDQorICAgICAgICAvKioN
CisgICAgICAgICogR2V0IHByZWZlcmVuY2UgZm9yIGEgcGFydGljdWxhciBrZXkNCisgICAgICAg
ICovDQorICAgICAgICBUSW50IFByZWZlcmVuY2VMKCBjb25zdCBURGVzQyYgYU5hbWUsIFRQdHJD
JiBhVmFsdWUgKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqIFNldCBwcmVm
ZXJlbmNlIGZvciBhIHBhcnRpY3VsYXIga2V5DQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBT
ZXRQcmVmZXJlbmNlTCggY29uc3QgVERlc0MmIGFOYW1lLCBjb25zdCBURGVzQyYgYVZhbHVlICk7
ICAgDQogDQogICAgIHByb3RlY3RlZDoNCi0gICAgICAgIHZvaWQgRW1wdHkoKTsNCi0gICAgICAg
IHZvaWQgQ3JlYXRlRmlsZVBhdGhMKCk7DQotICAgICAgICBIQnVmQyogTWFrZUtleUxDKGNvbnN0
IFREZXNDJiBhTmFtZSk7DQotDQotICAgIHByb3RlY3RlZDoNCi0gICAgICAgIENXaWRnZXRQcmVm
ZXJlbmNlcyhDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9uKTsNCisgICAgICAgIC8q
Kg0KKyAgICAgICAgKiBDKysgQ29uc3RydWN0b3IgICAgICAgDQorICAgICAgICAqLw0KKyAgICAg
ICAgQ1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0ZW5zaW9u
ICk7DQorICAgICAgICANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBTeW1iaWFuIDJuZCBwaGFz
ZSBjb25zdHJ1Y3Rvcg0KKyAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQ29uc3RydWN0TCgpOw0K
IA0KICAgICBwcml2YXRlOg0KLSAgICAgICAgUlB0ckhhc2hNYXA8VERlc0MsVERlc0M+IGlNYXA7
DQotICAgICAgICBSUHRySGFzaE1hcDxURGVzQyxUSW50PiBpU2l6ZU1hcDsNCisgICAgICAgIFJQ
dHJIYXNoTWFwPFREZXNDLENQcmVmRWxlbWVudD4gaVByZWZlcmVuY2VzOw0KICAgICAgICAgSEJ1
ZkMqIGlGaWxlUGF0aDsNCiAgICAgICAgIENXaWRnZXRFeHRlbnNpb24qIGlXaWRnZXRFeHRlbnNp
b247IC8vbm90IG93bmVkDQogICAgICAgICBIQnVmQyogaUJhc2VQYXRoOw0KLQ0KICAgICB9Ow0K
LQ0KKyAgICANCisgICAgDQogI2VuZGlmDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9X
aWRnZXRFeHRlbnNpb24uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XaWRnZXRFeHRlbnNpb24uY3BwCShyZXZpc2lvbiAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00MTIsNyAr
NDEyLDkgQEANCiAgICAgICAgICAgICBwYXJlbnROb2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJv
b3QsIHBhcmVudENtZElkICk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgaWYgKCBwYXJlbnRO
b2RlICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAgbm9kZSA9IHBhcmVudE5vZGUtPkZp
cnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogICAgIGVsc2UNCiAgICAg
ICAgICB7DQpAQCAtNDI4LDcgKzQzMCw5IEBADQogICAgICAgICAgICAgICAgICAwLCBhTWVudVBh
bmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpIC0gMiApOw0KICAgICAgICAgICAgICB9DQogICAgICAg
ICAgaWYgKCBpTWVudVJvb3QgKQ0KLSAgICAgICAgICAgICBub2RlID0gaU1lbnVSb290LT5GaXJz
dENoaWxkKCk7DQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIG5vZGUgPSBpTWVudVJvb3Qt
PkZpcnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICB9DQogDQogICAgIGlmICgg
bm9kZSApDQpAQCAtNDYyLDEyICs0NjYsMTggQEANCiAgICAgaWYgKCBhTm9kZS0+Rmlyc3RDaGls
ZCgpICkNCiAgICAgICAgIHsNCiAgICAgICAgIGlmICggaVJlc291cmNlSWQgPiBSX0NBU0NBREVf
TUVOVV8xICsgS01heE9wdGlvbnNNZW51ICkNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAg
bWVudURhdGEuaUNhc2NhZGVJZCA9IDA7DQorICAgICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0K
KyAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gaVJlc291
cmNlSWQ7DQorICAgICAgICAgICAgfSAgICAgICAgICAgIA0KICAgICAgICAgfQ0KICAgICBlbHNl
DQorICAgICAgICB7DQogICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gMDsNCisgICAgICAg
IH0gICAgICAgIA0KIA0KICAgICBtZW51RGF0YS5pRmxhZ3MgPSAwOw0KICAgICBtZW51RGF0YS5p
VGV4dCA9IGFOb2RlLT5UZXh0KCk7DQpAQCAtNDc3LDcgKzQ4Nyw3IEBADQogICAgIGVudHJ5LnBh
cmVudENtZElkID0gYU5vZGUtPkNtZElkKCk7DQogICAgIGlDYXNjYWRlQXJyLkFwcGVuZCggZW50
cnkgKTsNCiANCi0gICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIDAgKTsN
CisgICAgYU1lbnVQYW5lLkluc2VydE1lbnVJdGVtTCggbWVudURhdGEsIGFNZW51UGFuZS5OdW1i
ZXJPZkl0ZW1zSW5QYW5lKCktMSApOw0KICAgICBhTWVudVBhbmUuU2V0SXRlbURpbW1lZCggYU5v
ZGUtPkNtZElkKCkrS01lbnVJdGVtQ29tbWFuZElkQmFzZSwgYU5vZGUtPkRpbW1lZCgpICk7DQog
ICAgIH0NCiANCkBAIC02NTYsMjEgKzY2Niw0MCBAQA0KIC8vDQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiAvLw0KLXZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6QWRkT3B0aW9uc01lbnVJdGVtKA0K
K1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6QWRkT3B0aW9uc01lbnVJdGVtKCANCiAgICAgY29uc3Qg
VERlc0MmIGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50SWQsIHZvaWQqIGFPYmogKQ0K
LSAgICB7DQotICAgIGlmICggIWlNZW51Um9vdCApDQotICAgICAgICB7DQorICAgIHsgICANCisg
ICAgaWYgKCAhaU1lbnVSb290ICkgDQorICAgICAgICB7IA0KICAgICAgICAgaU1lbnVSb290ID0g
Q01lbnVJdGVtOjpOZXdMKCBfTCgiIiksIC0xICk7DQotICAgICAgICB9DQorICAgICAgICB9ICAg
IA0KKyAgICAgICAgDQogICAgIGlmICggYVRleHQuTGVuZ3RoKCkgPiAwICkNCiAgICAgICAgIHsN
CiAgICAgICAgIENNZW51SXRlbSogcGFyZW50ID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFQ
YXJlbnRJZCApOw0KICAgICAgICAgaWYgKCAhcGFyZW50ICkNCi0gICAgICAgICAgICByZXR1cm47
DQotICAgICAgICBDTWVudUl0ZW0qIGl0ZW0gPSBDTWVudUl0ZW06Ok5ld0woIGFUZXh0LCBhQ21k
SWQsIHBhcmVudCwgYU9iaiApOw0KLSAgICAgICAgQXBwZW5kKCBwYXJlbnQsIGl0ZW0gKTsNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEtFcnJHZW5lcmFsOw0KKyAgICAgICAg
ICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCisgICAg
ICAgIGl0ZW0gPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgYUNtZElkICk7ICAgICAgICANCisg
ICAgICAgIGlmICggaXRlbSApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBL
RXJyQWxyZWFkeUV4aXN0czsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAN
CisgICAgICAgIGl0ZW0gPSBGaW5kTm9kZUJ5VGV4dCggaU1lbnVSb290LCBhVGV4dCApOw0KKyAg
ICAgICAgaWYgKCBpdGVtICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEtF
cnJBbHJlYWR5RXhpc3RzOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIA0K
KyAgICAgICAgaXRlbSA9IENNZW51SXRlbTo6TmV3TCggYVRleHQsIGFDbWRJZCwgcGFyZW50LCBh
T2JqICk7IA0KKyAgICAgICAgcmV0dXJuIEFwcGVuZCggcGFyZW50LCBpdGVtICk7ICAgIA0KICAg
ICAgICAgfQ0KKyAgICAgICAgDQorICAgIHJldHVybiBLRXJyR2VuZXJhbDsgICAgICAgICAgICAg
ICAgDQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTY5NCwxMSArNzIz
LDEzIEBADQogLy8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotVEJvb2wgQ1dpZGdl
dEV4dGVuc2lvbjo6QXBwZW5kKA0KK1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6QXBwZW5kKCANCiAg
ICAgQ01lbnVJdGVtKiBhUGFyZW50LCBDTWVudUl0ZW0qIGFJdGVtICkNCi0gICAgew0KKyAgICB7
ICANCiAgICAgaWYgKCAhYVBhcmVudCApDQotICAgICAgICByZXR1cm4gRUZhbHNlOw0KKyAgICAg
ICAgew0KKyAgICAgICAgcmV0dXJuIEtFcnJHZW5lcmFsOw0KKyAgICAgICAgfQ0KIA0KICAgICBp
ZiAoIGFQYXJlbnQtPkZpcnN0Q2hpbGQoKSA9PSBOVUxMICkgLy9maXJzdCBjaGlsZA0KICAgICAg
ICAgew0KQEAgLTcwOCw4ICs3MzksOCBAQA0KICAgICAgICAgew0KICAgICAgICAgQXBwZW5kU2li
bGluZyggYVBhcmVudC0+Rmlyc3RDaGlsZCgpLCBhSXRlbSApOw0KICAgICAgICAgfQ0KLSAgICBy
ZXR1cm4gRVRydWU7DQotICAgIH0NCisgICAgcmV0dXJuIEtFcnJOb25lOyAgICAgICAgICAgIA0K
KyAgICB9IA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldEV4dGVuc2lv
bjo6QXBwZW5kU2libGluZw0KQEAgLTc2Niw3ICs3OTcsMTAgQEANCiAgICAgICAgICAgICBDTWVu
dUl0ZW0qIHByZXYgPSBwYXJlbnQtPkZpcnN0Q2hpbGQoKTsNCiAgICAgICAgICAgICBDTWVudUl0
ZW0qIGl0ZW0gPSBOVUxMOw0KICAgICAgICAgICAgIGlmICggcHJldiApDQorICAgICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgICAgaXRlbSA9IHByZXYtPk5leHRTaWJsaW5nKCk7DQorICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgd2hpbGUoIGl0
ZW0gKQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIGlmICggaXRlbS0+Q21k
SWQoKSA9PSBhQ21kSWQgKQ0KQEAgLTgwMiwyMSArODM2LDQxIEBADQogLy8NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQogLy8NCi12b2lkIENXaWRnZXRFeHRlbnNpb246OlJlcGxhY2VNZW51SXRl
bSgNCi0gICAgVEludCBvbGRJdGVtQ21kSWQsDQotICAgIGNvbnN0IFREZXNDJiBuZXdJdGVtVGV4
dCwNCi0gICAgVEludCBuZXdJdGVtQ21kSWQsDQorVEludCBDV2lkZ2V0RXh0ZW5zaW9uOjpSZXBs
YWNlTWVudUl0ZW0oIA0KKyAgICBUSW50IG9sZEl0ZW1DbWRJZCwgDQorICAgIGNvbnN0IFREZXND
JiBuZXdJdGVtVGV4dCwgDQorICAgIFRJbnQgbmV3SXRlbUNtZElkLCANCiAgICAgVEludCBuZXdJ
dGVtRGltbWVkICkNCiAgICAgew0KLSAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KLQ0KLSAg
ICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIG9sZEl0ZW1DbWRJZCApOw0KLSAgICBp
ZiAoIG5vZGUgKQ0KKyAgICBDTWVudUl0ZW0qIG5ld0l0ZW0gPSBOVUxMOw0KKyAgICBDTWVudUl0
ZW0qIG9sZEl0ZW0gPSBOVUxMOw0KKyAgICANCisgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYW5v
dGhlciBub2RlIGluIHRoZSB0cmVlIHdpdGggdGhlIHNhbWUgSWQgYXMgdGhhdCBvZiANCisgICAg
Ly8gbmV3SXRlbSBidXQgYWxsb3cgYSByZXBsYWNlIG9mIG9sZEl0ZW0gd2l0aCB0aGUgc2FtZSBJ
ZCBhcyB0aGUgbmV3SXRlbQ0KKyAgICBuZXdJdGVtID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3Qs
IG5ld0l0ZW1DbWRJZCApOyAgICANCisgICAgaWYgKCBuZXdJdGVtICYmIG5ld0l0ZW0tPkNtZElk
KCkgIT0gb2xkSXRlbUNtZElkICkNCiAgICAgICAgIHsNCi0gICAgICAgIG5vZGUtPlNldFRleHQo
IG5ld0l0ZW1UZXh0ICk7DQotICAgICAgICBub2RlLT5TZXRDbWRJZCggbmV3SXRlbUNtZElkICk7
DQotICAgICAgICBub2RlLT5TZXREaW1tZWQoIG5ld0l0ZW1EaW1tZWQgKTsNCisgICAgICAgIHJl
dHVybiBLRXJyQWxyZWFkeUV4aXN0czsNCiAgICAgICAgIH0NCisgICAgDQorICAgIC8vIGNoZWNr
IGlmIHRoZXJlIGlzIGFub3RoZXIgbm9kZSBpbiB0aGUgdHJlZSB3aXRoIHRoZSBzYW1lIHRleHQg
YXMgdGhhdCBvZiANCisgICAgLy8gbmV3SXRlbSBidXQgYWxsb3cgYSByZXBsYWNlIG9mIG9sZEl0
ZW0gd2l0aCB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBuZXdJdGVtDQorICAgIG5ld0l0ZW0gPSBGaW5k
Tm9kZUJ5VGV4dCggaU1lbnVSb290LCBuZXdJdGVtVGV4dCApOw0KKyAgICBvbGRJdGVtID0gRmlu
ZE5vZGVCeUlkKCBpTWVudVJvb3QsIG9sZEl0ZW1DbWRJZCApOyAgDQorICAgIGlmICggbmV3SXRl
bSAmJiBvbGRJdGVtICYmIG5ld0l0ZW0tPlRleHQoKS5Db21wYXJlKG9sZEl0ZW0tPlRleHQoKSkg
IT0gMCApDQorICAgICAgICB7DQorICAgICAgICByZXR1cm4gS0VyckFscmVhZHlFeGlzdHM7DQor
ICAgICAgICB9DQorICAgICAgDQorICAgIGlmICggb2xkSXRlbSApDQorICAgICAgICB7DQorICAg
ICAgICBvbGRJdGVtLT5TZXRUZXh0KCBuZXdJdGVtVGV4dCApOyAgICANCisgICAgICAgIG9sZEl0
ZW0tPlNldENtZElkKCBuZXdJdGVtQ21kSWQgKTsgICANCisgICAgICAgIG9sZEl0ZW0tPlNldERp
bW1lZCggbmV3SXRlbURpbW1lZCApOw0KKyAgICAgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICAg
ICAgfQ0KKyAgICAgICAgDQorICAgIHJldHVybiBLRXJyR2VuZXJhbDsgICAgICAgIA0KICAgICB9
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTg2MCw5ICs5MTQsMTMgQEANCiANCiAg
ICAgbm9kZSA9IEZpbmROb2RlQnlUZXh0KCBpTWVudVJvb3QsIHRleHRWYWwgKTsNCiAgICAgaWYg
KCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVybiBub2RlLT5PYmooKTsNCisgICAg
ICAgIH0NCiAgICAgZWxzZQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAg
ICAgICB9ICAgICAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC04
NzcsMTAgKzkzNSwxNSBAQA0KICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KIA0KICAgICBu
b2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGNtZElkICk7DQorICAgIA0KICAgICBpZiAo
IG5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIG5vZGUtPk9iaigpOw0KKyAgICAg
ICAgfQ0KICAgICBlbHNlDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gTlVMTDsNCisgICAg
ICAgIH0gICAgICAgIA0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTg5
NCw4ICs5NTcsMTEgQEANCiAgICAgew0KICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KICAg
ICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJZCApOw0KKyAgICANCiAgICAg
aWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIG5vZGUtPlNldERpbW1lZCggYVZhbHVl
ICk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAt
OTEwLDggKzk3NiwxMSBAQA0KICAgICB7DQogICAgIENNZW51SXRlbSogbm9kZSA9IE5VTEw7DQog
ICAgIG5vZGUgPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgYUNtZElkICk7DQorICAgIA0KICAg
ICBpZiAoIG5vZGUgKQ0KKyAgICAgICAgew0KICAgICAgICAgbm9kZS0+U2V0Q2FsbGJhY2soIGFP
blNlbGVjdENhbGxiYWNrICk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQpAQCAtOTI1LDEwICs5OTQsMTUgQEANCiAgICAgew0KICAgICBDTWVudUl0ZW0q
IG5vZGUgPSBOVUxMOw0KICAgICBub2RlID0gRmluZE5vZGVCeUlkKCBpTWVudVJvb3QsIGFDbWRJ
ZCApOw0KKyAgICANCiAgICAgaWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAgICAgIHJldHVy
biBub2RlLT5DYWxsYmFjaygpOw0KKyAgICAgICAgfQ0KICAgICBlbHNlDQorICAgICAgICB7DQog
ICAgICAgICByZXR1cm4gTlVMTDsNCisgICAgICAgIH0gICAgICAgIA0KICAgICB9DQogDQogDQpA
QCAtMTAwOCw3ICsxMDgyLDkgQEANCiAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCiANCiAg
ICAgaWYgKCAhbm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gaXRlbTsNCisgICAg
ICAgIH0NCiANCiAgICAgaWYgKCBub2RlLT5DbWRJZCgpID09IGFDbWRJZCApDQogICAgICAgICB7
DQpAQCAtMTA0Miw3ICsxMTE4LDkgQEANCiAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCiAN
CiAgICAgaWYgKCAhbm9kZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gaXRlbTsNCisg
ICAgICAgIH0NCiANCiAgICAgaWYgKCBub2RlLT5UZXh0KCkuQ29tcGFyZSggYVRleHQgKSA9PSAw
ICkNCiAgICAgICAgIHsNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldFByZWZl
cmVuY2VzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2lkZ2V0
UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyMzc2MykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcv
c3JjL1dpZGdldFByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYwLDkgKzYwLDkg
QEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2VzOjpO
ZXdMDQorLy8gVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvcg0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCiBDV2lkZ2V0UHJlZmVyZW5jZXMqIENXaWRnZXRQcmVmZXJlbmNlczo6
TmV3TCggDQogICAgIENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24gKQ0KQEAgLTc1
LDkgKzc1LDkgQEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZl
cmVuY2VzOjpOZXdMQw0KKy8vIFR3by1waGFzZWQgY29uc3RydWN0b3INCiAvLw0KIC8vDQotLy8N
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogQ1dpZGdldFByZWZlcmVuY2VzKiBDV2lkZ2V0UHJl
ZmVyZW5jZXM6Ok5ld0xDKCANCiAgICAgQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVuc2lv
biApDQpAQCAtOTEsMzUgKzkxLDMzIEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8v
IENXaWRnZXRQcmVmZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzDQorLy8gQysrIENvbnN0cnVj
dG9yDQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVm
ZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0
ZW5zaW9uICkNCiAgICAgOiBpV2lkZ2V0RXh0ZW5zaW9uKCAmYVdpZGdldEV4dGVuc2lvbiApDQot
ICAgIHsNCisgICAgeyAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAv
LyBDV2lkZ2V0UHJlZmVyZW5jZXM6On5DV2lkZ2V0UHJlZmVyZW5jZXMNCisvLyBEZXN0cnVjdG9y
DQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVmZXJl
bmNlczo6fkNXaWRnZXRQcmVmZXJlbmNlcygpDQogICAgIHsNCi0gICAgaU1hcC5SZXNldEFuZERl
c3Ryb3koKTsNCi0gICAgaU1hcC5DbG9zZSgpOw0KLSAgICBpU2l6ZU1hcC5SZXNldEFuZERlc3Ry
b3koKTsNCi0gICAgaVNpemVNYXAuQ2xvc2UoKTsNCisgICAgaVByZWZlcmVuY2VzLlJlc2V0QW5k
RGVzdHJveSgpOw0KKyAgICBpUHJlZmVyZW5jZXMuQ2xvc2UoKTsNCiAgICAgZGVsZXRlIGlCYXNl
UGF0aDsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJl
ZmVyZW5jZXM6OkNvbnN0cnVjdEwNCisvLyBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3Rvcg0K
IC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENXaWRnZXRQcmVm
ZXJlbmNlczo6Q29uc3RydWN0TCgpDQogICAgIHsNCkBAIC0xMjcsNDMgKzEyNSw0OCBAQA0KIA0K
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlByZWZlcmVu
Y2VMDQorLy8gR2V0IHByZWZlcmVuY2UgZm9yIGEga2V5DQogLy8NCiAvLw0KLS8vDQogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KIFRJbnQgQ1dpZGdldFByZWZlcmVuY2VzOjpQcmVmZXJlbmNlTCgg
Y29uc3QgVERlc0MmIGFLZXksIFRQdHJDJiBhVmFsdWUgKQ0KICAgICB7DQorICAgIFRJbnQgclN1
Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQorICAgIFRJbnQgaSA9IDA7DQorICAgIFRJbnQgc2l6ZSA9
IDA7DQorICAgIA0KICAgICBpZiAoICFpQmFzZVBhdGggJiYgKCBpV2lkZ2V0RXh0ZW5zaW9uLT5X
aWRnZXRCYXNlUGF0aCgpLkxlbmd0aCgpID4gMCApICkNCiAgICAgICAgIGlCYXNlUGF0aCA9IGlX
aWRnZXRFeHRlbnNpb24tPldpZGdldEJhc2VQYXRoKCkuQWxsb2NMKCk7DQogDQotICAgIFRJbnQg
clN1Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQotDQorIA0KICAgICBpZiAoIGFLZXkuTGVuZ3RoKCkg
PD0gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICB7DQogICAgICAgICBIQnVmQyoga2V5ID0g
SEJ1ZkM6Ok5ld0xDKCBhS2V5Lkxlbmd0aCgpICsgS01heEludExlbmd0aCArIDEgKTsNCiAgICAg
ICAgIGtleS0+RGVzKCkuRm9ybWF0KCBLS2V5Rm9ybWF0LCBpV2lkZ2V0RXh0ZW5zaW9uLT5HZXRX
aWRnZXRJZCgpLCAmYUtleSApOw0KLSAgICAgICAgVEludCogc2l6ZSA9IGlTaXplTWFwLkZpbmQo
ICprZXkgKTsNCi0gICAgICAgIFREZXNDKiByZXMgPSBpTWFwLkZpbmQoICprZXkgKTsNCi0NCi0g
ICAgICAgIGlmICggIXJlcyB8fCAhc2l6ZSApDQorICAgICAgICANCisgICAgICAgIENQcmVmRWxl
bWVudCogcHJlZiA9IGlQcmVmZXJlbmNlcy5GaW5kKCAqa2V5ICk7DQorICAgICAgICAgICAgICAg
ICAgICANCisgICAgICAgIGlmICggIXByZWYgKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAg
ICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koIGtleSApOw0KICAgICAgICAgICAgIHJldHVy
biByU3VjY2VzczsNCiAgICAgICAgICAgICB9DQorICAgICAgICAgICAgDQorICAgICAgICBzaXpl
ID0gcHJlZi0+VmFsdWVTaXplKCk7DQorICAgICAgICAgICAgDQogDQotICAgICAgICBpZiAoICpz
aXplID4gS01heEtleVZhbHVlU2l6ZSApDQorICAgICAgICBpZiAoIHNpemUgPiBLTWF4S2V5VmFs
dWVTaXplICkNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgLy8gcmV0dXJuIGNvbnRlbnRz
IGZyb20gdGVtcCBmaWxlIHdob3NlIG5hbWUgaXMgc3RvcmVkIA0KLSAgICAgICAgICAgIC8vIGlu
IHRoZSB2YWx1ZSBmaWVsZCBvZiBpTWFwDQorICAgICAgICAgICAgLy8gaW4gdGhlIGlWYWx1ZSBt
ZW1iZXIgb2YgaVByZWZlcmVuY2VzDQogICAgICAgICAgICAgUkZzIGZzOw0KIA0KICAgICAgICAg
ICAgIGlmICggZnMuQ29ubmVjdCgpID09IEtFcnJOb25lICkNCiAgICAgICAgICAgICAgICAgew0K
ICAgICAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggZnMgKTsNCi0gICAgICAgICAgICAg
ICAgSEJ1ZkMqIGZpbGVQYXRoID0gSEJ1ZkM6Ok5ld0xDKCByZXMtPkxlbmd0aCgpICk7DQotDQor
ICAgICAgICAgICAgICAgIEhCdWZDKiBmaWxlUGF0aCA9IEhCdWZDOjpOZXdMQyggcHJlZi0+VmFs
dWUoKS5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICBUUHRyIGZOYW1lKCBmaWxlUGF0aC0+
RGVzKCkgKTsNCi0gICAgICAgICAgICAgICAgZk5hbWUuQXBwZW5kKCAqcmVzICk7DQorICAgICAg
ICAgICAgICAgIGZOYW1lLkFwcGVuZCggcHJlZi0+VmFsdWUoKSApOw0KIA0KICAgICAgICAgICAg
ICAgICBSRmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsNCiANCkBAIC0xODQsMTYgKzE4NywxNiBA
QA0KICAgICAgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7Ly9y
ZWFkU3RyZWFtDQogICAgICAgICAgICAgICAgICAgICB9ICAgDQogDQotICAgICAgICAgICAgICAg
IENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgyKTsgLy9maWxlUGF0aCxmcw0KKyAgICAgICAg
ICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koIDIgKTsgLy9maWxlUGF0aCxmcw0K
ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgfSAgICAgICAgDQotICAgICAgICBlbHNl
IGlmICggKnNpemUgPj0gMCApDQorICAgICAgICBlbHNlIGlmICggc2l6ZSA+PSAwICkNCiAgICAg
ICAgICAgICB7DQotICAgICAgICAgICAgYVZhbHVlLlNldCggKnJlcyApOw0KKyAgICAgICAgICAg
IGFWYWx1ZS5TZXQoIHByZWYtPlZhbHVlKCkgKTsNCiAgICAgICAgICAgICByU3VjY2VzcyA9IEtF
cnJOb25lOw0KICAgICAgICAgICAgIH0NCiANCi0gICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5k
RGVzdHJveShrZXkpOw0KKyAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCBrZXkg
KTsNCiAgICAgICAgIH0NCiANCiAgICAgcmV0dXJuIHJTdWNjZXNzOw0KQEAgLTIwMSw5ICsyMDQs
OSBAQA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6
OlNldFByZWZlcmVuY2VMDQorLy8gU2V0IFByZWZlcmVuY2UgZm9yIGEga2V5DQogLy8NCiAvLw0K
LS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIHZvaWQgQ1dpZGdldFByZWZlcmVuY2VzOjpT
ZXRQcmVmZXJlbmNlTCggDQogICAgIGNvbnN0IFREZXNDJiBhS2V5LCBjb25zdCBURGVzQyYgYVZh
bHVlICkNCkBAIC0yMTgsMTkgKzIyMSwxOCBAQA0KIA0KICAgICAgICAgaWYgKCBhVmFsdWUuTGVu
Z3RoKCkgPD0gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICAgICAgew0KLSAgICAgICAgICAg
IEhCdWZDKiB2YWx1ZSA9IGFWYWx1ZS5BbGxvY0xDKCk7DQotICAgICAgICAgICAgaU1hcC5JbnNl
cnRMKCBrZXksIHZhbHVlICk7DQotICAgICAgICAgICAgVEludCogc2l6ZSA9IG5ldyBUSW50KGFW
YWx1ZS5MZW5ndGgoKSk7DQotICAgICAgICAgICAgLy8gbWFrZSBhIGNvcHkgb2Yga2V5IGFuZCBp
bnNlcnQgdGhhdA0KLSAgICAgICAgICAgIEhCdWZDKiBuZXdLZXkgPSBrZXktPkFsbG9jTEMoKTsN
Ci0gICAgICAgICAgICBpU2l6ZU1hcC5JbnNlcnRMKCBuZXdLZXksIHNpemUgKTsNCi0gICAgICAg
ICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMyApOy8vbmV3S2V5LHZhbHVlLGtleSAgICAgICAgICAg
DQorICAgICAgICAgICAgQ1ByZWZFbGVtZW50KiBwcmVmID0gbmV3IChFTGVhdmUpIENQcmVmRWxl
bWVudDsgICANCisgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBwcmVmICk7ICAgDQor
ICAgICAgICAgICAgcHJlZi0+U2V0VmFsdWVMKCBhVmFsdWUgKTsNCisgICAgICAgICAgICBwcmVm
LT5TZXRWYWx1ZVNpemUoIGFWYWx1ZS5MZW5ndGgoKSApOw0KKyAgICAgICAgICAgIGlQcmVmZXJl
bmNlcy5JbnNlcnRMKCBrZXksIHByZWYgKTsNCisgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBv
cCggMiApOyAvL3ByZWYsIGtleSAgIA0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAg
ICB9DQogICAgICAgICBlbHNlDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIC8vIGNyZWF0
ZSBhIHRlbXAgZmlsZSBhbmQgc2F2ZSB0aGUgdmFsdWUgaW4gdGVtcCBmaWxlLiANCi0gICAgICAg
ICAgICAvLyBpTWFwIHZhbHVlIGZpZWxkIGNvbnRhaW5zIHRoZSB0ZW1wIGZpbGUgbmFtZS4NCisg
ICAgICAgICAgICAvLyBpVmFsdWUgbWVtYmVyIG9mIENQcmVmRWxlbWVudCBjb250YWlucyB0aGUg
dGVtcCBmaWxlIG5hbWUuDQogICAgICAgICAgICAgUkZzIGZzOw0KICAgICAgICAgICAgIFJGaWxl
IGZpbGU7DQogDQpAQCAtMjQ2LDIwICsyNDgsMTkgQEANCiANCiAgICAgICAgICAgICAgICAgVFB0
ciBmTmFtZSggZmlsZVBhdGgtPkRlcygpICk7DQogICAgICAgICAgICAgICAgIGZOYW1lLkFwcGVu
ZCggdGVtcEZpbGVOYW1lICk7DQotICAgICAgICAgICAgICAgIGlNYXAuSW5zZXJ0TCgga2V5LCBm
aWxlUGF0aCApOw0KLSAgICAgICAgICAgICAgICBUSW50KiBzaXplID0gbmV3IFRJbnQoIGFWYWx1
ZS5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAgICAvLyBtYWtlIGEgY29weSBvZiBrZXkgYW5k
IGluc2VydCB0aGF0DQotICAgICAgICAgICAgICAgIEhCdWZDKiBuZXdLZXkgPSBrZXktPkFsbG9j
TEMoKTsNCi0gICAgICAgICAgICAgICAgaVNpemVNYXAuSW5zZXJ0TCggbmV3S2V5LCBzaXplICk7
DQotDQorICAgICAgICAgICAgICAgIENQcmVmRWxlbWVudCogcHJlZiA9IG5ldyAoIEVMZWF2ZSAp
IENQcmVmRWxlbWVudDsNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQdXNoTCggcHJl
ZiApOyAgDQorICAgICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlTCggKmZpbGVQYXRoICk7ICAg
ICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlU2l6ZSggYVZhbHVl
Lkxlbmd0aCgpICk7ICAgIA0KKyAgICAgICAgICAgICAgICBpUHJlZmVyZW5jZXMuSW5zZXJ0TCgg
a2V5LCBwcmVmICk7DQogICAgICAgICAgICAgICAgIFJGaWxlV3JpdGVTdHJlYW0gd3JpdGVTdHJl
YW0oIGZpbGUgKTsNCiAgICAgICAgICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRlU3Ry
ZWFtICk7ICAgICAgICANCiAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwo
IGFWYWx1ZS5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUwo
IGFWYWx1ZSApOyAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uQ29t
bWl0TCgpOw0KLSAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsg
Ly93cml0ZVN0cmVhbQ0KLSAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMiApOy8v
bmV3S2V5LGZpbGVQYXRoDQotICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVz
dHJveSggMiApOyAvL2ZpbGUsZnMNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BB
bmREZXN0cm95KCApOyAvL3dyaXRlU3RyZWFtDQorICAgICAgICAgICAgICAgIENsZWFudXBTdGFj
azo6UG9wKCBwcmVmICk7DQorICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVz
dHJveSggMyApOyAvL2ZpbGVQYXRoLGZpbGUsZnMNCiAgICAgICAgICAgICAgICAgQ2xlYW51cFN0
YWNrOjpQb3AoIGtleSApOw0KICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAg
ICAgIH0gICAgICAgICAgIA0KQEAgLTI3MSw5ICsyNzIsOSBAQA0KIA0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMDQorLy8gU0F2ZSBwcmVmZXJl
bmNlcyB0byBwZXJzaXN0ZW50IHN0b3JhZ2UNCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMKCkNCiAgICAgew0KQEAg
LTMwNSwyNCArMzA2LDIwIEBADQogICAgICAgICBpZiAoIGZpbGVlcnJvciA9PSBLRXJyTm9uZSAp
DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCB3cml0ZVN0
cmVhbSApOw0KLSAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBpTWFwLkNvdW50
KCkgKTsNCi0NCi0gICAgICAgICAgICBUUHRySGFzaE1hcEl0ZXI8VERlc0MsVERlc0M+IGl0KCBp
TWFwICk7DQorICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGlQcmVmZXJlbmNl
cy5Db3VudCgpICk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgVFB0ckhhc2hNYXBJdGVy
PFREZXNDLENQcmVmRWxlbWVudD4gaXQoIGlQcmVmZXJlbmNlcyApOw0KICAgICAgICAgICAgIGNv
bnN0IFREZXNDKiBrZXk7DQotICAgICAgICAgICAgY29uc3QgVERlc0MqIHZhbHVlOw0KKyAgICAg
ICAgICAgIGNvbnN0IENQcmVmRWxlbWVudCogcHJlZjsNCiANCiAgICAgICAgICAgICB3aGlsZSAo
ICgga2V5ID0gaXQuTmV4dEtleSgpICkgIT0gMCApDQogICAgICAgICAgICAgICAgIHsNCi0gICAg
ICAgICAgICAgICAgdmFsdWUgPSBpdC5DdXJyZW50VmFsdWUoKTsNCisgICAgICAgICAgICAgICAg
cHJlZiA9IGl0LkN1cnJlbnRWYWx1ZSgpOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5X
cml0ZUludDMyTCgga2V5LT5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVh
bS5Xcml0ZUwoICprZXkgKTsNCi0gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQz
MkwoIHZhbHVlLT5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0
ZUwoICp2YWx1ZSApOw0KLSAgICAgICAgICAgICAgICBUSW50KiBzaXplID0gaVNpemVNYXAuRmlu
ZCggKmtleSApOw0KLSAgICAgICAgICAgICAgICBpZiAoIHNpemUgKQ0KLSAgICAgICAgICAgICAg
ICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoICpzaXplICk7DQotICAgICAgICAgICAgICAg
IGVsc2UNCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCAwICk7
DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBwcmVmLT5WYWx1ZSgp
Lkxlbmd0aCgpICk7DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlTCggcHJlZi0+
VmFsdWUoKSApOw0KKyAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUludDMyTCggcHJl
Zi0+VmFsdWVTaXplKCkgKTsNCiAgICAgICAgICAgICAgICAgfQ0KIA0KICAgICAgICAgICAgIHdy
aXRlU3RyZWFtLkNvbW1pdEwoKTsNCkBAIC0zMzUsOSArMzMyLDkgQEANCiANCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2VzOjpMb2FkTA0KKy8vIExvYWQgcHJl
ZmVyZW5jZXMgZnJvbSBwZXJzaXN0ZW50IHN0b3JhZ2UNCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVyZW5jZXM6OkxvYWRMKCkNCiAgICAg
ew0KQEAgLTM3OCwxMiArMzc1LDE1IEBADQogICAgICAgICAgICAgICAgICAgICAgICAgSEJ1ZkMq
IHZhbHVlID0gSEJ1ZkM6Ok5ld0xDKCBsZW4gKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICBU
UHRyIHB0cnZhbHVlID0gdmFsdWUtPkRlcygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgIHJl
YWRTdHJlYW0uUmVhZEwoIHB0cnZhbHVlLCBsZW4gKTsNCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpTWFwLkluc2VydEwoIGtleSwgdmFsdWUgKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICBU
SW50ICpzaXplID0gbmV3IFRJbnQgKCByZWFkU3RyZWFtLlJlYWRJbnQzMkwoKSApOw0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgYSBjb3B5IG9mIGtleSBhbmQgaW5zZXJ0IHRoYXQN
Ci0gICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyogbmV3S2V5ID0ga2V5LT5BbGxvY0xDKCk7
DQotICAgICAgICAgICAgICAgICAgICAgICAgaVNpemVNYXAuSW5zZXJ0TCggbmV3S2V5LCBzaXpl
ICk7DQotICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoIDMgKTsgLy9u
ZXdLZXksdmFsdWUsa2V5DQorICAgICAgICAgICAgICAgICAgICAgICAgQ1ByZWZFbGVtZW50KiBw
cmVmID0gbmV3ICggRUxlYXZlICkgQ1ByZWZFbGVtZW50Ow0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIENsZWFudXBTdGFjazo6UHVzaEwoIHByZWYgKTsNCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcmVmLT5TZXRWYWx1ZUwoIHB0cnZhbHVlICk7DQorICAgICAgICAgICAgICAgICAgICAgICAg
VEludCBzaXplID0gcmVhZFN0cmVhbS5SZWFkSW50MzJMKCk7DQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlZi0+U2V0VmFsdWVTaXplKCBzaXplICk7DQorICAgICAgICAgICAgICAgICAgICAg
ICAgaVByZWZlcmVuY2VzLkluc2VydEwoIGtleSwgcHJlZiApOw0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIENsZWFudXBTdGFjazo6UG9wKCk7IC8vcHJlZiANCisgICAgICAgICAgICAgICAgICAg
ICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy92YWx1ZQ0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCk7IC8va2V5DQogICAgICAgICAgICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgIHsNCkBAIC00MDIsNCArNDAyLDU0IEBADQogICAgICAgICBDbGVhbnVwU3RhY2s6OlBv
cEFuZERlc3Ryb3koIDIgKTsgLy9mcyxmaWxlUGF0aA0KICAgICAgICAgfQ0KICAgICB9DQorICAg
IA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDUHJlZkVsZW1lbnQ6OkNQcmVmRWxlbWVu
dA0KKy8vIEMrKyBjb25zdHJ1Y3Rvcg0KKy8vDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICAgIA0KK0NQcmVmRWxlbWVudDo6Q1ByZWZFbGVtZW50KCkNCisgICAgew0KKyAgICB9DQogDQor
ICAgIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDUHJlZkVsZW1lbnQ6On5DUHJlZkVs
ZW1lbnQNCisvLyBEZXN0cnVjdG9yDQorLy8NCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CitDUHJlZkVsZW1lbnQ6On5DUHJlZkVsZW1lbnQoKQ0KKyAgICB7DQorICAgIGRlbGV0ZSBpVmFs
dWU7DQorICAgIH0NCisNCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1ByZWZFbGVt
ZW50OjpTZXRWYWx1ZUwNCisvLyBTZXQgdmFsdWUgZm9yIGEgcHJlZmVyZW5jZQ0KKy8vDQorLy8N
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQordm9pZCBDUHJlZkVsZW1lbnQ6OlNldFZhbHVlTCgg
Y29uc3QgVERlc0MmIGFWYWx1ZSApDQorICAgIHsNCisgICAgaWYgKCAhaVZhbHVlICkNCisgICAg
ICAgIHsNCisgICAgICAgIGlWYWx1ZSAgPSBhVmFsdWUuQWxsb2NMKCk7DQorICAgICAgICByZXR1
cm47DQorICAgICAgICB9DQorDQorICAgIGlmICggYVZhbHVlLkxlbmd0aCgpID4gaVZhbHVlLT5M
ZW5ndGgoKSApDQorICAgICAgICB7DQorICAgICAgICBkZWxldGUgaVZhbHVlOw0KKyAgICAgICAg
aVZhbHVlID0gTlVMTDsNCisgICAgICAgIGlWYWx1ZSAgPSBhVmFsdWUuQWxsb2NMKCk7DQorICAg
ICAgICB9DQorICAgIGVsc2UNCisgICAgICAgIHsNCisgICAgICAgICppVmFsdWUgPSBhVmFsdWU7
DQorICAgICAgICBpZiAoIGFWYWx1ZS5MZW5ndGgoKSA8IGlWYWx1ZS0+TGVuZ3RoKCkgKQ0KKyAg
ICAgICAgICAgIGlWYWx1ZSAgPSBpVmFsdWUtPlJlQWxsb2NMKCBhVmFsdWUuTGVuZ3RoKCkgKTsg
Ly8gcmVjbGFpbSBzcGFjZQ0KKyAgICAgICAgfQ0KKyAgICB9DQo=
</data>
<flag name="review"
          id="6298"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15376</attachid>
            <date>2007-07-03 13:37:23 -0700</date>
            <delta_ts>2007-07-10 13:10:18 -0700</delta_ts>
            <desc>migrate fixes for SYAI-73AS6K  and SYAI-73ARXK to 3.1</desc>
            <filename>widget_menu_enh_3.1.patch</filename>
            <type>text/plain</type>
            <size>32743</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCShyZXZpc2lvbiAyMjA5
NykNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtNzI2LDYgKzcyNiwxNyBAQA0KICAgICAgICAgRVdpZGdldEJ1bmRsZUlkLA0KICAg
ICAgICAgRVdpZGdldEJhc2VQYXRoDQogICAgICAgICB9Ow0KKyAgICAgICAgDQorICAgIC8qKg0K
KyAgICAqIE9yaWVudGF0aW9uIGZvciByb3RhdGluZyBkaXNwbGF5DQorICAgICovDQorICAgIGVu
dW0gVEJyQ3RsT3JpZW50YXRpb24NCisgICAgICAgIHsNCisgICAgICAgIEVPcmllbnRhdGlvblVu
ZGVmaW5lZCA9IDAsDQorICAgICAgICBFT3JpZW50YXRpb25MYW5kc2NhcGUsDQorICAgICAgICBF
T3JpZW50YXRpb25Qb3J0cmFpdA0KKyAgICAgICAgfTsNCisNCiAgICAgfTsNCiANCiAjZW5kaWYg
ICAgICAvLyBCUkNUTERFRlNfSA0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJD
dGxJbnRlcmZhY2UuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMv
QnJDdGxJbnRlcmZhY2UuaAkocmV2aXNpb24gMjIwOTcpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250
cm9sL2luYy9CckN0bEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtODk5LDcgKzg5OSwz
MyBAQA0KICAgICAgICAgKi8NCiAgICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nTWltZUZpbGVT
ZWxlY3RMQyhIQnVmQyomIGFTZWxlY3RlZEZpbGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFREZXNDJiBhTWltZVR5cGUpID0gMDsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAvKioNCisgICAgICAgICogQ2Fs
bGVkIHRvIHNob3cgb3IgaGlkZSBzb2Z0a2V5cw0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAg
ICAgICAqIEBwYXJhbSBhVmlzaWJsZSBFVHJ1ZSB0byBzaG93IHNvZnRrZXlzLCBFRmFsc2Ugd2hl
biBmdWxsIHNjcmVlbiBpcyBuZWVkZWQNCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIHZv
aWQgU2V0U29mdGtleXNWaXNpYmxlKFRCb29sIGFWaXNpYmxlKSA9IDA7DQogDQorICAgICAgICAv
KioNCisgICAgICAgICogQ2FsbGVkIHRvIGNoYW5nZSB0aGUgZGlzcGxheSBvcmllbnRhdGlvbiB0
byBsYW5kc2NhcGUNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKi8NCisgICAgICAg
IHZpcnR1YWwgdm9pZCBTZXREaXNwbGF5TW9kZShUQnJDdGxEZWZzOjpUQnJDdGxPcmllbnRhdGlv
biBhT3JpZW50YXRpb24pID0gMDsNCisNCisgICAgICAgIHZpcnR1YWwgdm9pZCBSZXNlcnZlZF8x
KCkgPSAwOw0KKyAgICAgICAgdmlydHVhbCB2b2lkIFJlc2VydmVkXzIoKSA9IDA7DQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgUmVzZXJ2ZWRfMygpID0gMDsNCisgICAgICAgIHZpcnR1YWwgdm9pZCBS
ZXNlcnZlZF80KCkgPSAwOw0KKyAgICAgICAgdmlydHVhbCB2b2lkIFJlc2VydmVkXzUoKSA9IDA7
DQorICAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXJ2ZWRfNigpID0gMDsNCisgICAgICAgIHZpcnR1
YWwgdm9pZCBSZXNlcnZlZF83KCkgPSAwOw0KKyAgICAgICAgdmlydHVhbCB2b2lkIFJlc2VydmVk
XzgoKSA9IDA7DQorICAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXJ2ZWRfOSgpID0gMDsNCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBSZXNlcnZlZF8xMCgpID0gMDsNCisNCisNCisNCiAgICAgfTsNCiAN
CiAvLyBDTEFTUyBERUNMQVJBVElPTg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2lk
Z2V0RXh0ZW5zaW9uLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dp
ZGdldEV4dGVuc2lvbi5oCShyZXZpc2lvbiAyMjA5NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL1dpZGdldEV4dGVuc2lvbi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTg5LDkgKzE4OSw5IEBA
DQogICAgICAgICAqIEBwYXJhbSB0ZXh0IGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhlIG1haW4gYXJl
YSBvZiB0aGUgbWVudSBpdGVtDQogICAgICAgICAqIEBwYXJhbSBJRCBvZiB0aGUgY29tbWFuZCB0
byBpc3N1ZSB3aGVuIHRoZSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogQHBhcmFt
IGNvbW1hbmQgSUQgb2YgdGhlIHBhcmVudCBtZW51IGl0ZW0NCi0gICAgICAgICogQHJldHVybiBu
b25lDQorICAgICAgICAqIEByZXR1cm4gRXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAgICAg
IHZvaWQgQWRkT3B0aW9uc01lbnVJdGVtKCBjb25zdCBURGVzQyYgYVRleHQsIFRJbnQgYUNtZElk
LCBUSW50IGFQYXJlbnRDbWRJZCwgdm9pZCogb2JqICk7DQorICAgICAgICBUSW50IEFkZE9wdGlv
bnNNZW51SXRlbSggY29uc3QgVERlc0MmIGFUZXh0LCBUSW50IGFDbWRJZCwgVEludCBhUGFyZW50
Q21kSWQsIHZvaWQqIG9iaiApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqIE1ldGhvZCBT
ZXRSaWdodFNvZnRLZXlMYWJlbA0KQEAgLTIyNCw5ICsyMjQsOSBAQA0KICAgICAgICAgKiBAcGFy
YW0gdGV4dC9sYWJlbCBmb3IgdGhlIG5ldyBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGNv
bW1hbmQgSUQgb2YgdGhlIG5ldyBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIGRpbW1lZCBz
dGF0dXMNCi0gICAgICAgICogQHJldHVybiBub25lDQorICAgICAgICAqIEByZXR1cm4gRXJyb3Ig
Y29kZQ0KICAgICAgICAgKi8NCi0gICAgICAgIHZvaWQgUmVwbGFjZU1lbnVJdGVtKCBUSW50IG9s
ZENtZElkLCBjb25zdCBURGVzQyYgbmV3VGV4dCwgDQorICAgICAgICBUSW50IFJlcGxhY2VNZW51
SXRlbSggVEludCBvbGRDbWRJZCwgY29uc3QgVERlc0MmIG5ld1RleHQsIA0KICAgICAgICAgICAg
IFRJbnQgbmV3Q21kSWQsIFRJbnQgbmV3RGltbWVkICk7DQogDQogICAgICAgICAvKioNCkBAIC0z
NjksNyArMzY5LDM1IEBADQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCogR2V0RnJvbU1lbnVJ
dGVtQ29sbGVjdGlvbiggVEludCBjbWRJZCApOw0KIA0KKyAgICAgICAgLyoqDQorICAgICAgICAq
IE1ldGhvZCBIaWRlU29mdGtleXMNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBA
cmV0dXJuIHZvaWQNCisgICAgICAgICovDQorICAgICAgICB2b2lkIEhpZGVTb2Z0a2V5cyggKTsN
CiANCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBNZXRob2QgU2hvd1NvZnRrZXlzDQorICAgICAg
ICAqIEBzaW5jZSAzLjINCisgICAgICAgICogQHJldHVybiB2b2lkDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBTaG93U29mdGtleXMoICk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICog
TWV0aG9kIFNldERpc3BsYXlMYW5kc2NhcGUNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAg
ICAgKiBAcmV0dXJuIHZvaWQNCisgICAgICAgICovDQorICAgICAgICB2b2lkIFNldERpc3BsYXlM
YW5kc2NhcGUoICk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogTWV0aG9kIFNldERpc3Bs
YXlQb3J0cmFpdA0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAgICAgICAqIEByZXR1cm4gdm9p
ZA0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgU2V0RGlzcGxheVBvcnRyYWl0KCApOw0KKw0K
Kw0KICAgICBwdWJsaWM6DQogICAgICAgICAvKioNCiAgICAgICAgICogTWV0aG9kIFdpZGdldFJl
bmRlcmVyDQpAQCAtNTQyLDkgKzU3MCw5IEBADQogICAgICAgICAqIEBzaW5jZSAzLjINCiAgICAg
ICAgICogQHBhcmFtIHBhcmVudCBtZW51IGl0ZW0NCiAgICAgICAgICogQHBhcmFtIG1lbnUgaXRl
bSB0byBiZSBpbnNlcnRlZA0KLSAgICAgICAgKiBAcmV0dXJuIFRCb29sDQorICAgICAgICAqIEBy
ZXR1cm4gZXJyb3IgY29kZQ0KICAgICAgICAgKi8NCi0gICAgICAgIFRCb29sIEFwcGVuZCggQ01l
bnVJdGVtKiByb290LCBDTWVudUl0ZW0qIGl0ZW0gKTsNCisgICAgICAgIFRJbnQgQXBwZW5kKCBD
TWVudUl0ZW0qIHJvb3QsIENNZW51SXRlbSogaXRlbSApOw0KIA0KICAgICAgICAgLyoNCiAgICAg
ICAgICogTWV0aG9kIEFwcGVuZFNpYmxpbmcNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5j
L1dpZGdldFByZWZlcmVuY2VzLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL1dpZGdldFByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIyMDk3KQ0KKysrIFdlYktpdC9Ccm93
c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQ0KQEAgLTU3LDcg
KzU3LDc3IEBADQogY2xhc3MgQ1dpZGdldEV4dGVuc2lvbjsNCiANCiAvLyBDTEFTUyBERUNMQVJB
VElPTg0KKw0KIC8qKg0KKyogIENQcmVmRWxlbWVudA0KKyoNCisqICBAbGliIHdpZGdldGVuZ2lu
ZS5kbGwNCisqICBAc2luY2UgMy4yDQorKi8NCitjbGFzcyBDUHJlZkVsZW1lbnQgOiBwdWJsaWMg
Q0Jhc2UNCisgICAgew0KK3B1YmxpYyA6DQorICAgIC8qKg0KKyAgICAqIENvbnN0cnVjdG9yLg0K
KyAgICAqLw0KKyAgICBDUHJlZkVsZW1lbnQoKTsNCisgICAgDQorICAgIC8qKg0KKyAgICAqIERl
c3RydWN0b3IuDQorICAgICovDQorICAgIH5DUHJlZkVsZW1lbnQoKTsNCisgICAgDQorICAgIC8q
Kg0KKyAgICAqIFNldFZhbHVlTA0KKyAgICAqIFNldCB2YWx1ZSBmb3IgYSBwcmVmZXJlbmNlDQor
ICAgICogQHBhcmFtIGNvbnN0IFREZXNDJiBhVmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgc2V0DQor
ICAgICogQHJldHVybiBub25lDQorICAgICovDQorICAgIHZvaWQgU2V0VmFsdWVMKCBjb25zdCBU
RGVzQyYgYVZhbHVlICk7DQorICAgIA0KKyAgICAvKioNCisgICAgKiBTZXRWYWx1ZVNpemUNCisg
ICAgKiBTZXQgbGVuZ3RoIG9mIHZhbHVlIA0KKyAgICAqIEBwYXJhbSBjb25zdCBUSW50IGFTaXpl
IC0gVGhlIGxlbmd0aCB0byBiZSBzZXQNCisgICAgKiBAcmV0dXJuIG5vbmUNCisgICAgKi8NCisg
ICAgdm9pZCBTZXRWYWx1ZVNpemUoIGNvbnN0IFRJbnQgYVNpemUgKQ0KKyAgICAgICAgew0KKyAg
ICAgICAgaVZhbHVlU2l6ZSA9IGFTaXplOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgIC8q
Kg0KKyAgICAqIEdldFZhbHVlDQorICAgICogR2V0IHZhbHVlIGZvciBhIHByZWZlcmVuY2UNCisg
ICAgKiBAcGFyYW0gbm9uZQ0KKyAgICAqIEByZXR1cm4gY29uc3QgVERlc0MmIC0gdmFsdWUgZm9y
IHRoZSBwcmVmZXJlbmNlDQorICAgICovICAgICAgDQorICAgIGNvbnN0IFREZXNDJiBWYWx1ZSgp
IGNvbnN0DQorICAgICAgICB7DQorICAgICAgICBpZiAoIGlWYWx1ZSApIA0KKyAgICAgICAgICAg
IHJldHVybiAqaVZhbHVlOw0KKyAgICAgICAgZWxzZSANCisgICAgICAgICAgICByZXR1cm4gS051
bGxEZXNDKCk7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgLyoqDQorICAgICogR2V0VmFs
dWVTaXplDQorICAgICogR2V0IGxlbmd0aCBvZiB2YWx1ZQ0KKyAgICAqIEBwYXJhbSBub25lDQor
ICAgICogQHJldHVybiBUSW50IC0gbGVuZ3RoIG9mIHZhbHVlIGZvciB0aGUgcHJlZmVyZW5jZQ0K
KyAgICAqLyAgICAgIA0KKyAgICBUSW50IFZhbHVlU2l6ZSgpIGNvbnN0DQorICAgICAgICB7DQor
ICAgICAgICByZXR1cm4gaVZhbHVlU2l6ZTsNCisgICAgICAgIH0NCisgICAgICAgIA0KK3ByaXZh
dGUgOg0KKyAgICBIQnVmQyogIGlWYWx1ZTsgICAgIC8vIHZhbHVlIG9mIHRoZSBwcmVmZXJlbmNl
DQorICAgIFRJbnQgICAgaVZhbHVlU2l6ZTsgLy8gbGVuZ3RoIG9mIHRoZSB2YWx1ZQ0KKyAgICB9
Ow0KKw0KKw0KKy8qKg0KICogIENXaWRnZXRQcmVmZXJlbmNlcw0KICoNCiAqICBAbGliIHdpZGdl
dGVuZ2luZS5kbGwNCkBAIC02NywzMiArMTM3LDU1IEBADQogICAgIHsNCiANCiAgICAgcHVibGlj
Og0KLSAgICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyogTmV3TChDV2lkZ2V0RXh0ZW5z
aW9uJiBhV2lkZ2V0RXh0ZW5zaW9uKTsNCi0gICAgICAgIHN0YXRpYyBDV2lkZ2V0UHJlZmVyZW5j
ZXMqIE5ld0xDKENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24pOw0KKyAgICAgICAg
LyoqDQorICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAg
ICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyogTmV3TCggQ1dpZGdldEV4dGVuc2lvbiYg
YVdpZGdldEV4dGVuc2lvbiApOw0KKyAgICAgICAgc3RhdGljIENXaWRnZXRQcmVmZXJlbmNlcyog
TmV3TEMoIENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24gKTsNCisgICAgICAgIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KICAgICAg
ICAgfkNXaWRnZXRQcmVmZXJlbmNlcygpOw0KIA0KICAgICBwdWJsaWM6DQorICAgICAgICAvKioN
CisgICAgICAgICogTG9hZCBwcmVmZXJlbmNlcyBmcm9tIHBlcnNpc3RlbnQgc3RvcmFnZQ0KKyAg
ICAgICAgKi8NCiAgICAgICAgIHZvaWQgTG9hZEwoKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFNhdmUgcHJlZmVyZW5jZXMgdG8gcGVyc2lzdGVudCBzdG9yYWdlDQorICAg
ICAgICAqLw0KICAgICAgICAgdm9pZCBTYXZlTCgpOw0KLSAgICAgICAgVEludCBQcmVmZXJlbmNl
TChjb25zdCBURGVzQyYgYU5hbWUsIFRQdHJDJiBhVmFsdWUpOw0KLSAgICAgICAgdm9pZCBTZXRQ
cmVmZXJlbmNlTChjb25zdCBURGVzQyYgYU5hbWUsIGNvbnN0IFREZXNDJiBhVmFsdWUpOw0KKyAg
ICAgICAgDQorICAgICAgICAvKioNCisgICAgICAgICogR2V0IHByZWZlcmVuY2UgZm9yIGEgcGFy
dGljdWxhciBrZXkNCisgICAgICAgICovDQorICAgICAgICBUSW50IFByZWZlcmVuY2VMKCBjb25z
dCBURGVzQyYgYU5hbWUsIFRQdHJDJiBhVmFsdWUgKTsNCisgICAgICAgIA0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFNldCBwcmVmZXJlbmNlIGZvciBhIHBhcnRpY3VsYXIga2V5DQorICAgICAg
ICAqLw0KKyAgICAgICAgdm9pZCBTZXRQcmVmZXJlbmNlTCggY29uc3QgVERlc0MmIGFOYW1lLCBj
b25zdCBURGVzQyYgYVZhbHVlICk7ICAgDQogDQogICAgIHByb3RlY3RlZDoNCi0gICAgICAgIHZv
aWQgRW1wdHkoKTsNCi0gICAgICAgIHZvaWQgQ3JlYXRlRmlsZVBhdGhMKCk7DQotICAgICAgICBI
QnVmQyogTWFrZUtleUxDKGNvbnN0IFREZXNDJiBhTmFtZSk7DQotDQotICAgIHByb3RlY3RlZDoN
Ci0gICAgICAgIENXaWRnZXRQcmVmZXJlbmNlcyhDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0RXh0
ZW5zaW9uKTsNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBDKysgQ29uc3RydWN0b3IgICAgICAg
DQorICAgICAgICAqLw0KKyAgICAgICAgQ1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5z
aW9uJiBhV2lkZ2V0RXh0ZW5zaW9uICk7DQorICAgICAgICANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3Rvcg0KKyAgICAgICAgKi8NCiAgICAgICAg
IHZvaWQgQ29uc3RydWN0TCgpOw0KIA0KICAgICBwcml2YXRlOg0KLSAgICAgICAgUlB0ckhhc2hN
YXA8VERlc0MsVERlc0M+IGlNYXA7DQotICAgICAgICBSUHRySGFzaE1hcDxURGVzQyxUSW50PiBp
U2l6ZU1hcDsNCisgICAgICAgIFJQdHJIYXNoTWFwPFREZXNDLENQcmVmRWxlbWVudD4gaVByZWZl
cmVuY2VzOw0KICAgICAgICAgSEJ1ZkMqIGlGaWxlUGF0aDsNCiAgICAgICAgIENXaWRnZXRFeHRl
bnNpb24qIGlXaWRnZXRFeHRlbnNpb247IC8vbm90IG93bmVkDQogICAgICAgICBIQnVmQyogaUJh
c2VQYXRoOw0KLQ0KICAgICB9Ow0KLQ0KKyAgICANCisgICAgDQogI2VuZGlmDQpJbmRleDogV2Vi
S2l0L0Jyb3dzZXJWaWV3L3NyYy9XaWRnZXRFeHRlbnNpb24uY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XaWRnZXRFeHRlbnNpb24uY3BwCShyZXZpc2lvbiAyMjA5
NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC00Niw3ICs0Niw2IEBADQogI2luY2x1ZGUgPGFwZ3Rhc2suaD4NCiAjaW5j
bHVkZSA8YnJvd3NlcmxhdW5jaGVyLmg+DQogI2luY2x1ZGUgPHdpZGdldG1lbnUucnNnPg0KLSNp
bmNsdWRlIDxlaWtidGdwYy5oPg0KICNpbmNsdWRlIDxhdmtvbi5ocmg+DQogDQogI2luY2x1ZGUg
IldpZGdldEV4dGVuc2lvbi5oIg0KQEAgLTQxMiw3ICs0MTEsOSBAQA0KICAgICAgICAgICAgIHBh
cmVudE5vZGUgPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgcGFyZW50Q21kSWQgKTsNCiAgICAg
ICAgICAgICB9DQogICAgICAgICBpZiAoIHBhcmVudE5vZGUgKQ0KKyAgICAgICAgICAgIHsNCiAg
ICAgICAgICAgICBub2RlID0gcGFyZW50Tm9kZS0+Rmlyc3RDaGlsZCgpOw0KKyAgICAgICAgICAg
IH0NCiAgICAgICAgIH0NCiAgICAgZWxzZQ0KICAgICAgICAgIHsNCkBAIC00MjgsNyArNDI5LDkg
QEANCiAgICAgICAgICAgICAgICAgIDAsIGFNZW51UGFuZS5OdW1iZXJPZkl0ZW1zSW5QYW5lKCkg
LSAyICk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoIGlNZW51Um9vdCApDQotICAg
ICAgICAgICAgIG5vZGUgPSBpTWVudVJvb3QtPkZpcnN0Q2hpbGQoKTsNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgbm9kZSA9IGlNZW51Um9vdC0+Rmlyc3RDaGlsZCgpOw0KKyAgICAgICAg
ICAgIH0NCiAgICAgICAgIH0NCiANCiAgICAgaWYgKCBub2RlICkNCkBAIC00NjIsMTIgKzQ2NSwx
OCBAQA0KICAgICBpZiAoIGFOb2RlLT5GaXJzdENoaWxkKCkgKQ0KICAgICAgICAgew0KICAgICAg
ICAgaWYgKCBpUmVzb3VyY2VJZCA+IFJfQ0FTQ0FERV9NRU5VXzEgKyBLTWF4T3B0aW9uc01lbnUg
KQ0KKyAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBtZW51RGF0YS5pQ2FzY2FkZUlkID0gMDsN
CisgICAgICAgICAgICB9DQogICAgICAgICBlbHNlDQorICAgICAgICAgICAgew0KICAgICAgICAg
ICAgIG1lbnVEYXRhLmlDYXNjYWRlSWQgPSBpUmVzb3VyY2VJZDsNCisgICAgICAgICAgICB9ICAg
ICAgICAgICAgDQogICAgICAgICB9DQogICAgIGVsc2UNCisgICAgICAgIHsNCiAgICAgICAgIG1l
bnVEYXRhLmlDYXNjYWRlSWQgPSAwOw0KKyAgICAgICAgfSAgICAgICAgDQogDQogICAgIG1lbnVE
YXRhLmlGbGFncyA9IDA7DQogICAgIG1lbnVEYXRhLmlUZXh0ID0gYU5vZGUtPlRleHQoKTsNCkBA
IC00NzcsNyArNDg2LDcgQEANCiAgICAgZW50cnkucGFyZW50Q21kSWQgPSBhTm9kZS0+Q21kSWQo
KTsNCiAgICAgaUNhc2NhZGVBcnIuQXBwZW5kKCBlbnRyeSApOw0KIA0KLSAgICBhTWVudVBhbmUu
SW5zZXJ0TWVudUl0ZW1MKCBtZW51RGF0YSwgMCApOw0KKyAgICBhTWVudVBhbmUuSW5zZXJ0TWVu
dUl0ZW1MKCBtZW51RGF0YSwgYU1lbnVQYW5lLk51bWJlck9mSXRlbXNJblBhbmUoKS0xICk7DQog
ICAgIGFNZW51UGFuZS5TZXRJdGVtRGltbWVkKCBhTm9kZS0+Q21kSWQoKStLTWVudUl0ZW1Db21t
YW5kSWRCYXNlLCBhTm9kZS0+RGltbWVkKCkgKTsNCiAgICAgfQ0KIA0KQEAgLTY1NiwyMSArNjY1
LDQwIEBADQogLy8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotdm9pZCBDV2lkZ2V0
RXh0ZW5zaW9uOjpBZGRPcHRpb25zTWVudUl0ZW0oDQorVEludCBDV2lkZ2V0RXh0ZW5zaW9uOjpB
ZGRPcHRpb25zTWVudUl0ZW0oIA0KICAgICBjb25zdCBURGVzQyYgYVRleHQsIFRJbnQgYUNtZElk
LCBUSW50IGFQYXJlbnRJZCwgdm9pZCogYU9iaiApDQotICAgIHsNCi0gICAgaWYgKCAhaU1lbnVS
b290ICkNCi0gICAgICAgIHsNCisgICAgeyAgIA0KKyAgICBpZiAoICFpTWVudVJvb3QgKSANCisg
ICAgICAgIHsgDQogICAgICAgICBpTWVudVJvb3QgPSBDTWVudUl0ZW06Ok5ld0woIF9MKCIiKSwg
LTEgKTsNCi0gICAgICAgIH0NCisgICAgICAgIH0gICAgDQorICAgICAgICANCiAgICAgaWYgKCBh
VGV4dC5MZW5ndGgoKSA+IDAgKQ0KICAgICAgICAgew0KICAgICAgICAgQ01lbnVJdGVtKiBwYXJl
bnQgPSBGaW5kTm9kZUJ5SWQoIGlNZW51Um9vdCwgYVBhcmVudElkICk7DQogICAgICAgICBpZiAo
ICFwYXJlbnQgKQ0KLSAgICAgICAgICAgIHJldHVybjsNCi0gICAgICAgIENNZW51SXRlbSogaXRl
bSA9IENNZW51SXRlbTo6TmV3TCggYVRleHQsIGFDbWRJZCwgcGFyZW50LCBhT2JqICk7DQotICAg
ICAgICBBcHBlbmQoIHBhcmVudCwgaXRlbSApOw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICByZXR1cm4gS0VyckdlbmVyYWw7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAg
ICBDTWVudUl0ZW0qIGl0ZW0gPSBOVUxMOw0KKyAgICAgICAgaXRlbSA9IEZpbmROb2RlQnlJZCgg
aU1lbnVSb290LCBhQ21kSWQgKTsgICAgICAgIA0KKyAgICAgICAgaWYgKCBpdGVtICkNCisgICAg
ICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEtFcnJBbHJlYWR5RXhpc3RzOw0KKyAgICAg
ICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgaXRlbSA9IEZpbmROb2Rl
QnlUZXh0KCBpTWVudVJvb3QsIGFUZXh0ICk7DQorICAgICAgICBpZiAoIGl0ZW0gKQ0KKyAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gS0VyckFscmVhZHlFeGlzdHM7DQorICAgICAg
ICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICBpdGVtID0gQ01lbnVJdGVt
OjpOZXdMKCBhVGV4dCwgYUNtZElkLCBwYXJlbnQsIGFPYmogKTsgDQorICAgICAgICByZXR1cm4g
QXBwZW5kKCBwYXJlbnQsIGl0ZW0gKTsgICAgDQogICAgICAgICB9DQorICAgICAgICANCisgICAg
cmV0dXJuIEtFcnJHZW5lcmFsOyAgICAgICAgICAgICAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQpAQCAtNjgyLDkgKzcxMCwxMSBAQA0KIC8vDQogdm9pZCBDV2lkZ2V0
RXh0ZW5zaW9uOjpTZXRSaWdodFNvZnRLZXlMYWJlbCggY29uc3QgVERlc0MmIGFUZXh0ICkNCiAg
ICAgew0KLSAgICBDRWlrQnV0dG9uR3JvdXBDb250YWluZXIgKiBwQ2JhR3JvdXAgPSBDRWlrQnV0
dG9uR3JvdXBDb250YWluZXI6OkN1cnJlbnQoKTsNCi0gICAgcENiYUdyb3VwLT5TZXRDb21tYW5k
TCggRUFrblNvZnRrZXlFeGl0LCBhVGV4dCApOw0KLSAgICBwQ2JhR3JvdXAtPkRyYXdOb3coKTsN
CisgICAgaWYgKGlXZWJLaXRWaWV3LT5XZWJLaXRDb250cm9sKCkuQnJDdGwoKS5CckN0bFNvZnRr
ZXlzT2JzZXJ2ZXIoKSkNCisgICAgICAgIHsNCisgICAgICAgIGlXZWJLaXRWaWV3LT5XZWJLaXRD
b250cm9sKCkuQnJDdGwoKS5CckN0bFNvZnRrZXlzT2JzZXJ2ZXIoKS0+VXBkYXRlU29mdGtleUwo
DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUtleVJpZ2h0LCBhVGV4dCwg
MCwgRUNoYW5nZVJlYXNvbkxvYWQpOw0KKyAgICAgICAgfQ0KICAgICB9DQogDQogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCkBAIC02OTQsMTEgKzcyNCwxMyBAQA0KIC8vDQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCiAvLw0KLVRCb29sIENXaWRnZXRFeHRlbnNpb246OkFwcGVuZCgNCitUSW50
IENXaWRnZXRFeHRlbnNpb246OkFwcGVuZCggDQogICAgIENNZW51SXRlbSogYVBhcmVudCwgQ01l
bnVJdGVtKiBhSXRlbSApDQotICAgIHsNCisgICAgeyAgDQogICAgIGlmICggIWFQYXJlbnQgKQ0K
LSAgICAgICAgcmV0dXJuIEVGYWxzZTsNCisgICAgICAgIHsNCisgICAgICAgIHJldHVybiBLRXJy
R2VuZXJhbDsNCisgICAgICAgIH0NCiANCiAgICAgaWYgKCBhUGFyZW50LT5GaXJzdENoaWxkKCkg
PT0gTlVMTCApIC8vZmlyc3QgY2hpbGQNCiAgICAgICAgIHsNCkBAIC03MDgsOCArNzQwLDggQEAN
CiAgICAgICAgIHsNCiAgICAgICAgIEFwcGVuZFNpYmxpbmcoIGFQYXJlbnQtPkZpcnN0Q2hpbGQo
KSwgYUl0ZW0gKTsNCiAgICAgICAgIH0NCi0gICAgcmV0dXJuIEVUcnVlOw0KLSAgICB9DQorICAg
IHJldHVybiBLRXJyTm9uZTsgICAgICAgICAgICANCisgICAgfSANCiANCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KIC8vIENXaWRnZXRFeHRlbnNpb246OkFwcGVuZFNpYmxpbmcNCkBAIC03NjYs
NyArNzk4LDEwIEBADQogICAgICAgICAgICAgQ01lbnVJdGVtKiBwcmV2ID0gcGFyZW50LT5GaXJz
dENoaWxkKCk7DQogICAgICAgICAgICAgQ01lbnVJdGVtKiBpdGVtID0gTlVMTDsNCiAgICAgICAg
ICAgICBpZiAoIHByZXYgKQ0KKyAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIGl0
ZW0gPSBwcmV2LT5OZXh0U2libGluZygpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAg
ICAgICAgIA0KICAgICAgICAgICAgIHdoaWxlKCBpdGVtICkNCiAgICAgICAgICAgICAgICAgew0K
ICAgICAgICAgICAgICAgICBpZiAoIGl0ZW0tPkNtZElkKCkgPT0gYUNtZElkICkNCkBAIC04MDIs
MjEgKzgzNyw0MSBAQA0KIC8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vDQotdm9pZCBD
V2lkZ2V0RXh0ZW5zaW9uOjpSZXBsYWNlTWVudUl0ZW0oDQotICAgIFRJbnQgb2xkSXRlbUNtZElk
LA0KLSAgICBjb25zdCBURGVzQyYgbmV3SXRlbVRleHQsDQotICAgIFRJbnQgbmV3SXRlbUNtZElk
LA0KK1RJbnQgQ1dpZGdldEV4dGVuc2lvbjo6UmVwbGFjZU1lbnVJdGVtKCANCisgICAgVEludCBv
bGRJdGVtQ21kSWQsIA0KKyAgICBjb25zdCBURGVzQyYgbmV3SXRlbVRleHQsIA0KKyAgICBUSW50
IG5ld0l0ZW1DbWRJZCwgDQogICAgIFRJbnQgbmV3SXRlbURpbW1lZCApDQogICAgIHsNCi0gICAg
Q01lbnVJdGVtKiBub2RlID0gTlVMTDsNCi0NCi0gICAgbm9kZSA9IEZpbmROb2RlQnlJZCggaU1l
bnVSb290LCBvbGRJdGVtQ21kSWQgKTsNCi0gICAgaWYgKCBub2RlICkNCisgICAgQ01lbnVJdGVt
KiBuZXdJdGVtID0gTlVMTDsNCisgICAgQ01lbnVJdGVtKiBvbGRJdGVtID0gTlVMTDsNCisgICAg
DQorICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGFub3RoZXIgbm9kZSBpbiB0aGUgdHJlZSB3aXRo
IHRoZSBzYW1lIElkIGFzIHRoYXQgb2YgDQorICAgIC8vIG5ld0l0ZW0gYnV0IGFsbG93IGEgcmVw
bGFjZSBvZiBvbGRJdGVtIHdpdGggdGhlIHNhbWUgSWQgYXMgdGhlIG5ld0l0ZW0NCisgICAgbmV3
SXRlbSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBuZXdJdGVtQ21kSWQgKTsgICAgDQorICAg
IGlmICggbmV3SXRlbSAmJiBuZXdJdGVtLT5DbWRJZCgpICE9IG9sZEl0ZW1DbWRJZCApDQogICAg
ICAgICB7DQotICAgICAgICBub2RlLT5TZXRUZXh0KCBuZXdJdGVtVGV4dCApOw0KLSAgICAgICAg
bm9kZS0+U2V0Q21kSWQoIG5ld0l0ZW1DbWRJZCApOw0KLSAgICAgICAgbm9kZS0+U2V0RGltbWVk
KCBuZXdJdGVtRGltbWVkICk7DQorICAgICAgICByZXR1cm4gS0VyckFscmVhZHlFeGlzdHM7DQog
ICAgICAgICB9DQorICAgIA0KKyAgICAvLyBjaGVjayBpZiB0aGVyZSBpcyBhbm90aGVyIG5vZGUg
aW4gdGhlIHRyZWUgd2l0aCB0aGUgc2FtZSB0ZXh0IGFzIHRoYXQgb2YgDQorICAgIC8vIG5ld0l0
ZW0gYnV0IGFsbG93IGEgcmVwbGFjZSBvZiBvbGRJdGVtIHdpdGggdGhlIHNhbWUgdGV4dCBhcyB0
aGUgbmV3SXRlbQ0KKyAgICBuZXdJdGVtID0gRmluZE5vZGVCeVRleHQoIGlNZW51Um9vdCwgbmV3
SXRlbVRleHQgKTsNCisgICAgb2xkSXRlbSA9IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBvbGRJ
dGVtQ21kSWQgKTsgIA0KKyAgICBpZiAoIG5ld0l0ZW0gJiYgb2xkSXRlbSAmJiBuZXdJdGVtLT5U
ZXh0KCkuQ29tcGFyZShvbGRJdGVtLT5UZXh0KCkpICE9IDAgKQ0KKyAgICAgICAgew0KKyAgICAg
ICAgcmV0dXJuIEtFcnJBbHJlYWR5RXhpc3RzOw0KKyAgICAgICAgfQ0KKyAgICAgIA0KKyAgICBp
ZiAoIG9sZEl0ZW0gKQ0KKyAgICAgICAgew0KKyAgICAgICAgb2xkSXRlbS0+U2V0VGV4dCggbmV3
SXRlbVRleHQgKTsgICAgDQorICAgICAgICBvbGRJdGVtLT5TZXRDbWRJZCggbmV3SXRlbUNtZElk
ICk7ICAgDQorICAgICAgICBvbGRJdGVtLT5TZXREaW1tZWQoIG5ld0l0ZW1EaW1tZWQgKTsNCisg
ICAgICAgIHJldHVybiBLRXJyTm9uZTsNCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICByZXR1
cm4gS0VyckdlbmVyYWw7ICAgICAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCkBAIC04NjAsOSArOTE1LDEzIEBADQogDQogICAgIG5vZGUgPSBGaW5kTm9kZUJ5VGV4dCgg
aU1lbnVSb290LCB0ZXh0VmFsICk7DQogICAgIGlmICggbm9kZSApDQorICAgICAgICB7DQogICAg
ICAgICByZXR1cm4gbm9kZS0+T2JqKCk7DQorICAgICAgICB9DQogICAgIGVsc2UNCisgICAgICAg
IHsNCiAgICAgICAgIHJldHVybiBOVUxMOw0KKyAgICAgICAgfSAgICAgICAgDQogICAgIH0NCiAN
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtODc3LDEwICs5MzYsMTUgQEANCiAgICAgQ01l
bnVJdGVtKiBub2RlID0gTlVMTDsNCiANCiAgICAgbm9kZSA9IEZpbmROb2RlQnlJZCggaU1lbnVS
b290LCBjbWRJZCApOw0KKyAgICANCiAgICAgaWYgKCBub2RlICkNCisgICAgICAgIHsNCiAgICAg
ICAgIHJldHVybiBub2RlLT5PYmooKTsNCisgICAgICAgIH0NCiAgICAgZWxzZQ0KKyAgICAgICAg
ew0KICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAgICAgICB9ICAgICAgICANCiAgICAgfQ0KIA0K
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC04OTQsOCArOTU4LDExIEBADQogICAgIHsNCiAg
ICAgQ01lbnVJdGVtKiBub2RlID0gTlVMTDsNCiAgICAgbm9kZSA9IEZpbmROb2RlQnlJZCggaU1l
bnVSb290LCBhQ21kSWQgKTsNCisgICAgDQogICAgIGlmICggbm9kZSApDQorICAgICAgICB7DQog
ICAgICAgICBub2RlLT5TZXREaW1tZWQoIGFWYWx1ZSApOw0KKyAgICAgICAgfQ0KICAgICB9DQog
DQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTkxMCw4ICs5NzcsMTEgQEANCiAgICAgew0K
ICAgICBDTWVudUl0ZW0qIG5vZGUgPSBOVUxMOw0KICAgICBub2RlID0gRmluZE5vZGVCeUlkKCBp
TWVudVJvb3QsIGFDbWRJZCApOw0KKyAgICANCiAgICAgaWYgKCBub2RlICkNCisgICAgICAgIHsN
CiAgICAgICAgIG5vZGUtPlNldENhbGxiYWNrKCBhT25TZWxlY3RDYWxsYmFjayApOw0KKyAgICAg
ICAgfQ0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTkyNSwxMCArOTk1
LDE1IEBADQogICAgIHsNCiAgICAgQ01lbnVJdGVtKiBub2RlID0gTlVMTDsNCiAgICAgbm9kZSA9
IEZpbmROb2RlQnlJZCggaU1lbnVSb290LCBhQ21kSWQgKTsNCisgICAgDQogICAgIGlmICggbm9k
ZSApDQorICAgICAgICB7DQogICAgICAgICByZXR1cm4gbm9kZS0+Q2FsbGJhY2soKTsNCisgICAg
ICAgIH0NCiAgICAgZWxzZQ0KKyAgICAgICAgew0KICAgICAgICAgcmV0dXJuIE5VTEw7DQorICAg
ICAgICB9ICAgICAgICANCiAgICAgfQ0KIA0KIA0KQEAgLTEwMDgsNyArMTA4Myw5IEBADQogICAg
IENNZW51SXRlbSogaXRlbSA9IE5VTEw7DQogDQogICAgIGlmICggIW5vZGUgKQ0KKyAgICAgICAg
ew0KICAgICAgICAgcmV0dXJuIGl0ZW07DQorICAgICAgICB9DQogDQogICAgIGlmICggbm9kZS0+
Q21kSWQoKSA9PSBhQ21kSWQgKQ0KICAgICAgICAgew0KQEAgLTEwNDIsNyArMTExOSw5IEBADQog
ICAgIENNZW51SXRlbSogaXRlbSA9IE5VTEw7DQogDQogICAgIGlmICggIW5vZGUgKQ0KKyAgICAg
ICAgew0KICAgICAgICAgcmV0dXJuIGl0ZW07DQorICAgICAgICB9DQogDQogICAgIGlmICggbm9k
ZS0+VGV4dCgpLkNvbXBhcmUoIGFUZXh0ICkgPT0gMCApDQogICAgICAgICB7DQpAQCAtMTA2NSw3
ICsxMTQ0LDU0IEBADQogICAgIHJldHVybiBpdGVtOw0KICAgICB9DQogDQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBDV2lkZ2V0RXh0ZW5zaW9uOjpIaWRlU29mdGtleXMNCisvLw0KKy8v
DQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDV2lkZ2V0RXh0ZW5z
aW9uOjpIaWRlU29mdGtleXMoICkNCisgICAgew0KKyAgICBpV2lkZ2V0Q2FsbGJhY2stPlNldFNv
ZnRrZXlzVmlzaWJsZShFRmFsc2UpOw0KKyAgICB9DQorICAgIA0KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQorLy8gQ1dpZGdldEV4dGVuc2lvbjo6U2hvd1NvZnRrZXlzDQorLy8NCisvLw0KKy8v
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6
U2hvd1NvZnRrZXlzKCApDQorICAgIHsNCisgICAgaVdpZGdldENhbGxiYWNrLT5TZXRTb2Z0a2V5
c1Zpc2libGUoRVRydWUpOw0KKyAgICB9DQogDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisv
LyBDV2lkZ2V0RXh0ZW5zaW9uOjpTZXREaXNwbGF5TGFuZHNjYXBlDQorLy8NCisvLw0KKy8vDQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6U2V0
RGlzcGxheUxhbmRzY2FwZSggKQ0KKyAgICB7DQorICAgIGlXaWRnZXRDYWxsYmFjay0+U2V0RGlz
cGxheU1vZGUoVEJyQ3RsRGVmczo6RU9yaWVudGF0aW9uTGFuZHNjYXBlKTsNCisgICAgfQ0KKw0K
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1dpZGdldEV4dGVuc2lvbjo6U2V0RGlzcGxh
eVBvcnRyYWl0DQorLy8NCisvLw0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K3ZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6U2V0RGlzcGxheVBvcnRyYWl0KCApDQorICAgIHsNCisg
ICAgaVdpZGdldENhbGxiYWNrLT5TZXREaXNwbGF5TW9kZShUQnJDdGxEZWZzOjpFT3JpZW50YXRp
b25Qb3J0cmFpdCk7DQorICAgIH0NCisNCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ01l
bnVJdGVtOjpOZXdMDQogLy8NCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldFBy
ZWZlcmVuY2VzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2lk
Z2V0UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyMjA5NykNCisrKyBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1dpZGdldFByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYwLDkgKzYw
LDkgQEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2Vz
OjpOZXdMDQorLy8gVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvcg0KIC8vDQogLy8NCi0vLw0KIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCiBDV2lkZ2V0UHJlZmVyZW5jZXMqIENXaWRnZXRQcmVmZXJlbmNl
czo6TmV3TCggDQogICAgIENXaWRnZXRFeHRlbnNpb24mIGFXaWRnZXRFeHRlbnNpb24gKQ0KQEAg
LTc1LDkgKzc1LDkgQEANCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFBy
ZWZlcmVuY2VzOjpOZXdMQw0KKy8vIFR3by1waGFzZWQgY29uc3RydWN0b3INCiAvLw0KIC8vDQot
Ly8NCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogQ1dpZGdldFByZWZlcmVuY2VzKiBDV2lkZ2V0
UHJlZmVyZW5jZXM6Ok5ld0xDKCANCiAgICAgQ1dpZGdldEV4dGVuc2lvbiYgYVdpZGdldEV4dGVu
c2lvbiApDQpAQCAtOTEsMzUgKzkxLDMzIEBADQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
IC8vIENXaWRnZXRQcmVmZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzDQorLy8gQysrIENvbnN0
cnVjdG9yDQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQ
cmVmZXJlbmNlczo6Q1dpZGdldFByZWZlcmVuY2VzKCBDV2lkZ2V0RXh0ZW5zaW9uJiBhV2lkZ2V0
RXh0ZW5zaW9uICkNCiAgICAgOiBpV2lkZ2V0RXh0ZW5zaW9uKCAmYVdpZGdldEV4dGVuc2lvbiAp
DQotICAgIHsNCisgICAgeyAgICANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6On5DV2lkZ2V0UHJlZmVyZW5jZXMNCisvLyBEZXN0cnVj
dG9yDQogLy8NCiAvLw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENXaWRnZXRQcmVm
ZXJlbmNlczo6fkNXaWRnZXRQcmVmZXJlbmNlcygpDQogICAgIHsNCi0gICAgaU1hcC5SZXNldEFu
ZERlc3Ryb3koKTsNCi0gICAgaU1hcC5DbG9zZSgpOw0KLSAgICBpU2l6ZU1hcC5SZXNldEFuZERl
c3Ryb3koKTsNCi0gICAgaVNpemVNYXAuQ2xvc2UoKTsNCisgICAgaVByZWZlcmVuY2VzLlJlc2V0
QW5kRGVzdHJveSgpOw0KKyAgICBpUHJlZmVyZW5jZXMuQ2xvc2UoKTsNCiAgICAgZGVsZXRlIGlC
YXNlUGF0aDsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0
UHJlZmVyZW5jZXM6OkNvbnN0cnVjdEwNCisvLyBTeW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3Rv
cg0KIC8vDQogLy8NCi0vLw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENXaWRnZXRQ
cmVmZXJlbmNlczo6Q29uc3RydWN0TCgpDQogICAgIHsNCkBAIC0xMjcsNDMgKzEyNSw0OCBAQA0K
IA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlByZWZl
cmVuY2VMDQorLy8gR2V0IHByZWZlcmVuY2UgZm9yIGEga2V5DQogLy8NCiAvLw0KLS8vDQogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KIFRJbnQgQ1dpZGdldFByZWZlcmVuY2VzOjpQcmVmZXJlbmNl
TCggY29uc3QgVERlc0MmIGFLZXksIFRQdHJDJiBhVmFsdWUgKQ0KICAgICB7DQorICAgIFRJbnQg
clN1Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQorICAgIFRJbnQgaSA9IDA7DQorICAgIFRJbnQgc2l6
ZSA9IDA7DQorICAgIA0KICAgICBpZiAoICFpQmFzZVBhdGggJiYgKCBpV2lkZ2V0RXh0ZW5zaW9u
LT5XaWRnZXRCYXNlUGF0aCgpLkxlbmd0aCgpID4gMCApICkNCiAgICAgICAgIGlCYXNlUGF0aCA9
IGlXaWRnZXRFeHRlbnNpb24tPldpZGdldEJhc2VQYXRoKCkuQWxsb2NMKCk7DQogDQotICAgIFRJ
bnQgclN1Y2Nlc3MgPSBLRXJyTm90Rm91bmQ7DQotDQorIA0KICAgICBpZiAoIGFLZXkuTGVuZ3Ro
KCkgPD0gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICB7DQogICAgICAgICBIQnVmQyoga2V5
ID0gSEJ1ZkM6Ok5ld0xDKCBhS2V5Lkxlbmd0aCgpICsgS01heEludExlbmd0aCArIDEgKTsNCiAg
ICAgICAgIGtleS0+RGVzKCkuRm9ybWF0KCBLS2V5Rm9ybWF0LCBpV2lkZ2V0RXh0ZW5zaW9uLT5H
ZXRXaWRnZXRJZCgpLCAmYUtleSApOw0KLSAgICAgICAgVEludCogc2l6ZSA9IGlTaXplTWFwLkZp
bmQoICprZXkgKTsNCi0gICAgICAgIFREZXNDKiByZXMgPSBpTWFwLkZpbmQoICprZXkgKTsNCi0N
Ci0gICAgICAgIGlmICggIXJlcyB8fCAhc2l6ZSApDQorICAgICAgICANCisgICAgICAgIENQcmVm
RWxlbWVudCogcHJlZiA9IGlQcmVmZXJlbmNlcy5GaW5kKCAqa2V5ICk7DQorICAgICAgICAgICAg
ICAgICAgICANCisgICAgICAgIGlmICggIXByZWYgKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAg
ICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koIGtleSApOw0KICAgICAgICAgICAgIHJl
dHVybiByU3VjY2VzczsNCiAgICAgICAgICAgICB9DQorICAgICAgICAgICAgDQorICAgICAgICBz
aXplID0gcHJlZi0+VmFsdWVTaXplKCk7DQorICAgICAgICAgICAgDQogDQotICAgICAgICBpZiAo
ICpzaXplID4gS01heEtleVZhbHVlU2l6ZSApDQorICAgICAgICBpZiAoIHNpemUgPiBLTWF4S2V5
VmFsdWVTaXplICkNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgLy8gcmV0dXJuIGNvbnRl
bnRzIGZyb20gdGVtcCBmaWxlIHdob3NlIG5hbWUgaXMgc3RvcmVkIA0KLSAgICAgICAgICAgIC8v
IGluIHRoZSB2YWx1ZSBmaWVsZCBvZiBpTWFwDQorICAgICAgICAgICAgLy8gaW4gdGhlIGlWYWx1
ZSBtZW1iZXIgb2YgaVByZWZlcmVuY2VzDQogICAgICAgICAgICAgUkZzIGZzOw0KIA0KICAgICAg
ICAgICAgIGlmICggZnMuQ29ubmVjdCgpID09IEtFcnJOb25lICkNCiAgICAgICAgICAgICAgICAg
ew0KICAgICAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggZnMgKTsNCi0gICAgICAgICAg
ICAgICAgSEJ1ZkMqIGZpbGVQYXRoID0gSEJ1ZkM6Ok5ld0xDKCByZXMtPkxlbmd0aCgpICk7DQot
DQorICAgICAgICAgICAgICAgIEhCdWZDKiBmaWxlUGF0aCA9IEhCdWZDOjpOZXdMQyggcHJlZi0+
VmFsdWUoKS5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICBUUHRyIGZOYW1lKCBmaWxlUGF0
aC0+RGVzKCkgKTsNCi0gICAgICAgICAgICAgICAgZk5hbWUuQXBwZW5kKCAqcmVzICk7DQorICAg
ICAgICAgICAgICAgIGZOYW1lLkFwcGVuZCggcHJlZi0+VmFsdWUoKSApOw0KIA0KICAgICAgICAg
ICAgICAgICBSRmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsNCiANCkBAIC0xODQsMTYgKzE4Nywx
NiBAQA0KICAgICAgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7
Ly9yZWFkU3RyZWFtDQogICAgICAgICAgICAgICAgICAgICB9ICAgDQogDQotICAgICAgICAgICAg
ICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgyKTsgLy9maWxlUGF0aCxmcw0KKyAgICAg
ICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koIDIgKTsgLy9maWxlUGF0aCxm
cw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgfSAgICAgICAgDQotICAgICAgICBl
bHNlIGlmICggKnNpemUgPj0gMCApDQorICAgICAgICBlbHNlIGlmICggc2l6ZSA+PSAwICkNCiAg
ICAgICAgICAgICB7DQotICAgICAgICAgICAgYVZhbHVlLlNldCggKnJlcyApOw0KKyAgICAgICAg
ICAgIGFWYWx1ZS5TZXQoIHByZWYtPlZhbHVlKCkgKTsNCiAgICAgICAgICAgICByU3VjY2VzcyA9
IEtFcnJOb25lOw0KICAgICAgICAgICAgIH0NCiANCi0gICAgICAgIENsZWFudXBTdGFjazo6UG9w
QW5kRGVzdHJveShrZXkpOw0KKyAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCBr
ZXkgKTsNCiAgICAgICAgIH0NCiANCiAgICAgcmV0dXJuIHJTdWNjZXNzOw0KQEAgLTIwMSw5ICsy
MDQsOSBAQA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5j
ZXM6OlNldFByZWZlcmVuY2VMDQorLy8gU2V0IFByZWZlcmVuY2UgZm9yIGEga2V5DQogLy8NCiAv
Lw0KLS8vDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIHZvaWQgQ1dpZGdldFByZWZlcmVuY2Vz
OjpTZXRQcmVmZXJlbmNlTCggDQogICAgIGNvbnN0IFREZXNDJiBhS2V5LCBjb25zdCBURGVzQyYg
YVZhbHVlICkNCkBAIC0yMTgsMTkgKzIyMSwxOCBAQA0KIA0KICAgICAgICAgaWYgKCBhVmFsdWUu
TGVuZ3RoKCkgPD0gS01heEtleVZhbHVlU2l6ZSApDQogICAgICAgICAgICAgew0KLSAgICAgICAg
ICAgIEhCdWZDKiB2YWx1ZSA9IGFWYWx1ZS5BbGxvY0xDKCk7DQotICAgICAgICAgICAgaU1hcC5J
bnNlcnRMKCBrZXksIHZhbHVlICk7DQotICAgICAgICAgICAgVEludCogc2l6ZSA9IG5ldyBUSW50
KGFWYWx1ZS5MZW5ndGgoKSk7DQotICAgICAgICAgICAgLy8gbWFrZSBhIGNvcHkgb2Yga2V5IGFu
ZCBpbnNlcnQgdGhhdA0KLSAgICAgICAgICAgIEhCdWZDKiBuZXdLZXkgPSBrZXktPkFsbG9jTEMo
KTsNCi0gICAgICAgICAgICBpU2l6ZU1hcC5JbnNlcnRMKCBuZXdLZXksIHNpemUgKTsNCi0gICAg
ICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMyApOy8vbmV3S2V5LHZhbHVlLGtleSAgICAgICAg
ICAgDQorICAgICAgICAgICAgQ1ByZWZFbGVtZW50KiBwcmVmID0gbmV3IChFTGVhdmUpIENQcmVm
RWxlbWVudDsgICANCisgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBwcmVmICk7ICAg
DQorICAgICAgICAgICAgcHJlZi0+U2V0VmFsdWVMKCBhVmFsdWUgKTsNCisgICAgICAgICAgICBw
cmVmLT5TZXRWYWx1ZVNpemUoIGFWYWx1ZS5MZW5ndGgoKSApOw0KKyAgICAgICAgICAgIGlQcmVm
ZXJlbmNlcy5JbnNlcnRMKCBrZXksIHByZWYgKTsNCisgICAgICAgICAgICBDbGVhbnVwU3RhY2s6
OlBvcCggMiApOyAvL3ByZWYsIGtleSAgIA0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAg
ICAgICB9DQogICAgICAgICBlbHNlDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIC8vIGNy
ZWF0ZSBhIHRlbXAgZmlsZSBhbmQgc2F2ZSB0aGUgdmFsdWUgaW4gdGVtcCBmaWxlLiANCi0gICAg
ICAgICAgICAvLyBpTWFwIHZhbHVlIGZpZWxkIGNvbnRhaW5zIHRoZSB0ZW1wIGZpbGUgbmFtZS4N
CisgICAgICAgICAgICAvLyBpVmFsdWUgbWVtYmVyIG9mIENQcmVmRWxlbWVudCBjb250YWlucyB0
aGUgdGVtcCBmaWxlIG5hbWUuDQogICAgICAgICAgICAgUkZzIGZzOw0KICAgICAgICAgICAgIFJG
aWxlIGZpbGU7DQogDQpAQCAtMjQ2LDIwICsyNDgsMTkgQEANCiANCiAgICAgICAgICAgICAgICAg
VFB0ciBmTmFtZSggZmlsZVBhdGgtPkRlcygpICk7DQogICAgICAgICAgICAgICAgIGZOYW1lLkFw
cGVuZCggdGVtcEZpbGVOYW1lICk7DQotICAgICAgICAgICAgICAgIGlNYXAuSW5zZXJ0TCgga2V5
LCBmaWxlUGF0aCApOw0KLSAgICAgICAgICAgICAgICBUSW50KiBzaXplID0gbmV3IFRJbnQoIGFW
YWx1ZS5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAgICAvLyBtYWtlIGEgY29weSBvZiBrZXkg
YW5kIGluc2VydCB0aGF0DQotICAgICAgICAgICAgICAgIEhCdWZDKiBuZXdLZXkgPSBrZXktPkFs
bG9jTEMoKTsNCi0gICAgICAgICAgICAgICAgaVNpemVNYXAuSW5zZXJ0TCggbmV3S2V5LCBzaXpl
ICk7DQotDQorICAgICAgICAgICAgICAgIENQcmVmRWxlbWVudCogcHJlZiA9IG5ldyAoIEVMZWF2
ZSApIENQcmVmRWxlbWVudDsNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQdXNoTCgg
cHJlZiApOyAgDQorICAgICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlTCggKmZpbGVQYXRoICk7
ICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHByZWYtPlNldFZhbHVlU2l6ZSggYVZh
bHVlLkxlbmd0aCgpICk7ICAgIA0KKyAgICAgICAgICAgICAgICBpUHJlZmVyZW5jZXMuSW5zZXJ0
TCgga2V5LCBwcmVmICk7DQogICAgICAgICAgICAgICAgIFJGaWxlV3JpdGVTdHJlYW0gd3JpdGVT
dHJlYW0oIGZpbGUgKTsNCiAgICAgICAgICAgICAgICAgQ2xlYW51cENsb3NlUHVzaEwoIHdyaXRl
U3RyZWFtICk7ICAgICAgICANCiAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQz
MkwoIGFWYWx1ZS5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0
ZUwoIGFWYWx1ZSApOyAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0u
Q29tbWl0TCgpOw0KLSAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3ko
KTsgLy93cml0ZVN0cmVhbQ0KLSAgICAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcCggMiAp
Oy8vbmV3S2V5LGZpbGVQYXRoDQotICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5k
RGVzdHJveSggMiApOyAvL2ZpbGUsZnMNCisgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQ
b3BBbmREZXN0cm95KCApOyAvL3dyaXRlU3RyZWFtDQorICAgICAgICAgICAgICAgIENsZWFudXBT
dGFjazo6UG9wKCBwcmVmICk7DQorICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5k
RGVzdHJveSggMyApOyAvL2ZpbGVQYXRoLGZpbGUsZnMNCiAgICAgICAgICAgICAgICAgQ2xlYW51
cFN0YWNrOjpQb3AoIGtleSApOw0KICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAg
ICAgICAgIH0gICAgICAgICAgIA0KQEAgLTI3MSw5ICsyNzIsOSBAQA0KIA0KIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCiAvLyBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMDQorLy8gU0F2ZSBwcmVm
ZXJlbmNlcyB0byBwZXJzaXN0ZW50IHN0b3JhZ2UNCiAvLw0KIC8vDQotLy8NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVyZW5jZXM6OlNhdmVMKCkNCiAgICAgew0K
QEAgLTMwNSwyNCArMzA2LDIwIEBADQogICAgICAgICBpZiAoIGZpbGVlcnJvciA9PSBLRXJyTm9u
ZSApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1c2hMKCB3cml0
ZVN0cmVhbSApOw0KLSAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBpTWFwLkNv
dW50KCkgKTsNCi0NCi0gICAgICAgICAgICBUUHRySGFzaE1hcEl0ZXI8VERlc0MsVERlc0M+IGl0
KCBpTWFwICk7DQorICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoIGlQcmVmZXJl
bmNlcy5Db3VudCgpICk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgVFB0ckhhc2hNYXBJ
dGVyPFREZXNDLENQcmVmRWxlbWVudD4gaXQoIGlQcmVmZXJlbmNlcyApOw0KICAgICAgICAgICAg
IGNvbnN0IFREZXNDKiBrZXk7DQotICAgICAgICAgICAgY29uc3QgVERlc0MqIHZhbHVlOw0KKyAg
ICAgICAgICAgIGNvbnN0IENQcmVmRWxlbWVudCogcHJlZjsNCiANCiAgICAgICAgICAgICB3aGls
ZSAoICgga2V5ID0gaXQuTmV4dEtleSgpICkgIT0gMCApDQogICAgICAgICAgICAgICAgIHsNCi0g
ICAgICAgICAgICAgICAgdmFsdWUgPSBpdC5DdXJyZW50VmFsdWUoKTsNCisgICAgICAgICAgICAg
ICAgcHJlZiA9IGl0LkN1cnJlbnRWYWx1ZSgpOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0cmVh
bS5Xcml0ZUludDMyTCgga2V5LT5MZW5ndGgoKSApOw0KICAgICAgICAgICAgICAgICB3cml0ZVN0
cmVhbS5Xcml0ZUwoICprZXkgKTsNCi0gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJ
bnQzMkwoIHZhbHVlLT5MZW5ndGgoKSApOw0KLSAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5X
cml0ZUwoICp2YWx1ZSApOw0KLSAgICAgICAgICAgICAgICBUSW50KiBzaXplID0gaVNpemVNYXAu
RmluZCggKmtleSApOw0KLSAgICAgICAgICAgICAgICBpZiAoIHNpemUgKQ0KLSAgICAgICAgICAg
ICAgICAgICAgd3JpdGVTdHJlYW0uV3JpdGVJbnQzMkwoICpzaXplICk7DQotICAgICAgICAgICAg
ICAgIGVsc2UNCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCAw
ICk7DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlSW50MzJMKCBwcmVmLT5WYWx1
ZSgpLkxlbmd0aCgpICk7DQorICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtLldyaXRlTCggcHJl
Zi0+VmFsdWUoKSApOw0KKyAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbS5Xcml0ZUludDMyTCgg
cHJlZi0+VmFsdWVTaXplKCkgKTsNCiAgICAgICAgICAgICAgICAgfQ0KIA0KICAgICAgICAgICAg
IHdyaXRlU3RyZWFtLkNvbW1pdEwoKTsNCkBAIC0zMzUsOSArMzMyLDkgQEANCiANCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dpZGdldFByZWZlcmVuY2VzOjpMb2FkTA0KKy8vIExvYWQg
cHJlZmVyZW5jZXMgZnJvbSBwZXJzaXN0ZW50IHN0b3JhZ2UNCiAvLw0KIC8vDQotLy8NCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2lkZ2V0UHJlZmVyZW5jZXM6OkxvYWRMKCkNCiAg
ICAgew0KQEAgLTM3OCwxMiArMzc1LDE1IEBADQogICAgICAgICAgICAgICAgICAgICAgICAgSEJ1
ZkMqIHZhbHVlID0gSEJ1ZkM6Ok5ld0xDKCBsZW4gKTsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICBUUHRyIHB0cnZhbHVlID0gdmFsdWUtPkRlcygpOw0KICAgICAgICAgICAgICAgICAgICAgICAg
IHJlYWRTdHJlYW0uUmVhZEwoIHB0cnZhbHVlLCBsZW4gKTsNCi0gICAgICAgICAgICAgICAgICAg
ICAgICBpTWFwLkluc2VydEwoIGtleSwgdmFsdWUgKTsNCi0gICAgICAgICAgICAgICAgICAgICAg
ICBUSW50ICpzaXplID0gbmV3IFRJbnQgKCByZWFkU3RyZWFtLlJlYWRJbnQzMkwoKSApOw0KLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgYSBjb3B5IG9mIGtleSBhbmQgaW5zZXJ0IHRo
YXQNCi0gICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyogbmV3S2V5ID0ga2V5LT5BbGxvY0xD
KCk7DQotICAgICAgICAgICAgICAgICAgICAgICAgaVNpemVNYXAuSW5zZXJ0TCggbmV3S2V5LCBz
aXplICk7DQotICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3AoIDMgKTsg
Ly9uZXdLZXksdmFsdWUsa2V5DQorICAgICAgICAgICAgICAgICAgICAgICAgQ1ByZWZFbGVtZW50
KiBwcmVmID0gbmV3ICggRUxlYXZlICkgQ1ByZWZFbGVtZW50Ow0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIENsZWFudXBTdGFjazo6UHVzaEwoIHByZWYgKTsNCisgICAgICAgICAgICAgICAgICAg
ICAgICBwcmVmLT5TZXRWYWx1ZUwoIHB0cnZhbHVlICk7DQorICAgICAgICAgICAgICAgICAgICAg
ICAgVEludCBzaXplID0gcmVhZFN0cmVhbS5SZWFkSW50MzJMKCk7DQorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJlZi0+U2V0VmFsdWVTaXplKCBzaXplICk7DQorICAgICAgICAgICAgICAgICAg
ICAgICAgaVByZWZlcmVuY2VzLkluc2VydEwoIGtleSwgcHJlZiApOw0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCk7IC8vcHJlZiANCisgICAgICAgICAgICAgICAg
ICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy92YWx1ZQ0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIENsZWFudXBTdGFjazo6UG9wKCk7IC8va2V5DQogICAgICAgICAgICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgIHsNCkBAIC00MDIsNCArNDAyLDU0IEBADQogICAgICAgICBDbGVhbnVwU3RhY2s6
OlBvcEFuZERlc3Ryb3koIDIgKTsgLy9mcyxmaWxlUGF0aA0KICAgICAgICAgfQ0KICAgICB9DQor
ICAgIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDUHJlZkVsZW1lbnQ6OkNQcmVmRWxl
bWVudA0KKy8vIEMrKyBjb25zdHJ1Y3Rvcg0KKy8vDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICAgIA0KK0NQcmVmRWxlbWVudDo6Q1ByZWZFbGVtZW50KCkNCisgICAgew0KKyAgICB9DQog
DQorICAgIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDUHJlZkVsZW1lbnQ6On5DUHJl
ZkVsZW1lbnQNCisvLyBEZXN0cnVjdG9yDQorLy8NCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCitDUHJlZkVsZW1lbnQ6On5DUHJlZkVsZW1lbnQoKQ0KKyAgICB7DQorICAgIGRlbGV0ZSBp
VmFsdWU7DQorICAgIH0NCisNCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1ByZWZF
bGVtZW50OjpTZXRWYWx1ZUwNCisvLyBTZXQgdmFsdWUgZm9yIGEgcHJlZmVyZW5jZQ0KKy8vDQor
Ly8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQordm9pZCBDUHJlZkVsZW1lbnQ6OlNldFZhbHVl
TCggY29uc3QgVERlc0MmIGFWYWx1ZSApDQorICAgIHsNCisgICAgaWYgKCAhaVZhbHVlICkNCisg
ICAgICAgIHsNCisgICAgICAgIGlWYWx1ZSAgPSBhVmFsdWUuQWxsb2NMKCk7DQorICAgICAgICBy
ZXR1cm47DQorICAgICAgICB9DQorDQorICAgIGlmICggYVZhbHVlLkxlbmd0aCgpID4gaVZhbHVl
LT5MZW5ndGgoKSApDQorICAgICAgICB7DQorICAgICAgICBkZWxldGUgaVZhbHVlOw0KKyAgICAg
ICAgaVZhbHVlID0gTlVMTDsNCisgICAgICAgIGlWYWx1ZSAgPSBhVmFsdWUuQWxsb2NMKCk7DQor
ICAgICAgICB9DQorICAgIGVsc2UNCisgICAgICAgIHsNCisgICAgICAgICppVmFsdWUgPSBhVmFs
dWU7DQorICAgICAgICBpZiAoIGFWYWx1ZS5MZW5ndGgoKSA8IGlWYWx1ZS0+TGVuZ3RoKCkgKQ0K
KyAgICAgICAgICAgIGlWYWx1ZSAgPSBpVmFsdWUtPlJlQWxsb2NMKCBhVmFsdWUuTGVuZ3RoKCkg
KTsgLy8gcmVjbGFpbSBzcGFjZQ0KKyAgICAgICAgfQ0KKyAgICB9DQpJbmRleDogV2ViS2l0L0No
YW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzOTUw
KQ0KKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsNDYgQEAN
CisyMDA3LTA3LTAzICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0aG5hc2FteUBub2tpYS5jb20+
DQorDQorICAgICAgICBSZXZpZXdlZCBieSBTYWNoaW4gUGFkbWEuDQorICAgICAgICBERVNDOiBt
ZXJnZSBmaXhlcyBTWUFJLTczQVM2SyBhbmQgU1lBSS03M0FSWEsgZnJvbSAzLjINCisgICAgICAg
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzg5DQorDQorICAgICAg
ICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaDoNCisgICAgICAgIChUQnJDdGxEZWZz
OjopOg0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaDoNCisg
ICAgICAgICogQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVuc2lvbi5oOg0KKyAgICAgICAgKiBC
cm93c2VyVmlldy9pbmMvV2lkZ2V0UHJlZmVyZW5jZXMuaDoNCisgICAgICAgIChDUHJlZkVsZW1l
bnQ6OlNldFZhbHVlU2l6ZSk6DQorICAgICAgICAoQ1ByZWZFbGVtZW50OjpWYWx1ZSk6DQorICAg
ICAgICAoQ1ByZWZFbGVtZW50OjpWYWx1ZVNpemUpOiAgICAgICAgDQorICAgICAgICAqIEJyb3dz
ZXJWaWV3L3NyYy9XaWRnZXRFeHRlbnNpb24uY3BwOg0KKyAgICAgICAgKENXaWRnZXRFeHRlbnNp
b246OkFkZE9wdGlvbk1lbnVJdGVtc0wpOg0KKyAgICAgICAgKENXaWRnZXRFeHRlbnNpb246OkFk
ZE1lbnVJdGVtKToNCisgICAgICAgIChDV2lkZ2V0RXh0ZW5zaW9uOjpBZGRPcHRpb25zTWVudUl0
ZW0pOg0KKyAgICAgICAgKENXaWRnZXRFeHRlbnNpb246OlNldFJpZ2h0U29mdEtleUxhYmVsKToN
CisgICAgICAgIChDV2lkZ2V0RXh0ZW5zaW9uOjpBcHBlbmQpOg0KKyAgICAgICAgKENXaWRnZXRF
eHRlbnNpb246OkRlbGV0ZU1lbnVJdGVtKToNCisgICAgICAgIChDV2lkZ2V0RXh0ZW5zaW9uOjpS
ZXBsYWNlTWVudUl0ZW0pOg0KKyAgICAgICAgKENXaWRnZXRFeHRlbnNpb246OkdldEZyb21NZW51
SXRlbUNvbGxlY3Rpb24pOg0KKyAgICAgICAgKENXaWRnZXRFeHRlbnNpb246OlNldERpbW1lZCk6
DQorICAgICAgICAoQ1dpZGdldEV4dGVuc2lvbjo6U2V0TWVudUl0ZW1PYnNlcnZlcik6DQorICAg
ICAgICAoQ1dpZGdldEV4dGVuc2lvbjo6TWVudUl0ZW1PYnNlcnZlcik6DQorICAgICAgICAoQ1dp
ZGdldEV4dGVuc2lvbjo6RmluZE5vZGVCeUlkKToNCisgICAgICAgIChDV2lkZ2V0RXh0ZW5zaW9u
OjpGaW5kTm9kZUJ5VGV4dCk6DQorICAgICAgICAoQ1dpZGdldEV4dGVuc2lvbjo6SGlkZVNvZnRr
ZXlzKToNCisgICAgICAgIChDV2lkZ2V0RXh0ZW5zaW9uOjpTaG93U29mdGtleXMpOg0KKyAgICAg
ICAgKENXaWRnZXRFeHRlbnNpb246OlNldERpc3BsYXlMYW5kc2NhcGUpOg0KKyAgICAgICAgKENX
aWRnZXRFeHRlbnNpb246OlNldERpc3BsYXlQb3J0cmFpdCk6DQorICAgICAgICAqIEJyb3dzZXJW
aWV3L3NyYy9XaWRnZXRQcmVmZXJlbmNlcy5jcHA6DQorICAgICAgICAoQ1dpZGdldFByZWZlcmVu
Y2VzOjpDV2lkZ2V0UHJlZmVyZW5jZXMpOg0KKyAgICAgICAgKENXaWRnZXRQcmVmZXJlbmNlczo6
fkNXaWRnZXRQcmVmZXJlbmNlcyk6DQorICAgICAgICAoQ1dpZGdldFByZWZlcmVuY2VzOjpQcmVm
ZXJlbmNlTCk6DQorICAgICAgICAoQ1dpZGdldFByZWZlcmVuY2VzOjpTZXRQcmVmZXJlbmNlTCk6
DQorICAgICAgICAoQ1dpZGdldFByZWZlcmVuY2VzOjpTYXZlTCk6DQorICAgICAgICAoQ1dpZGdl
dFByZWZlcmVuY2VzOjpMb2FkTCk6DQorICAgICAgICAoQ1ByZWZFbGVtZW50OjpDUHJlZkVsZW1l
bnQpOg0KKyAgICAgICAgKENQcmVmRWxlbWVudDo6fkNQcmVmRWxlbWVudCk6DQorICAgICAgICAo
Q1ByZWZFbGVtZW50OjpTZXRWYWx1ZUwpOg0KKw0KIGJyYWQsIHJzJ2QgYnkgc2FjaGluLg0KIA0K
ICAgICAgICAgREVTQzogbm9pc2Ugc3VwcHJlc3Npb24gLSB0eXBvIGluIHZlcnNpb24ubWsgY2F1
c2luZyBhIHNjYW5sb2cgZXJyb3IgLi4NCg==
</data>
<flag name="review"
          id="6375"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15491</attachid>
            <date>2007-07-12 13:02:56 -0700</date>
            <delta_ts>2007-07-12 13:20:38 -0700</delta_ts>
            <desc>3.1 patch</desc>
            <filename>widget_menu_enh_3.1_fix.patch</filename>
            <type>text/plain</type>
            <size>5025</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCShyZXZpc2lvbiAyNDI0
NykNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtMjA2LDcgKzIwNiwxMSBAQA0KICAgICAgICAgICAgIEVDb21tYW5kU21hcnRMaW5r
TWFrZUNhbGwsIC8vLzwNCiAgICAgICAgICAgICBFQ29tbWFuZFNtYXJ0TGlua1NlbmRNZXNzYWdl
LCAvLy88DQogICAgICAgICAgICAgRUNvbW1hbmRTbWFydExpbmtBZGRUb1Bob25lQm9vaywgLy8v
PA0KLSAgICAgICAgICAgIEVDb21tYW5kU2hvd1Rvb2xCYXIgLy8vPFNob3dzIHRoZSB0b29sYmFy
DQorICAgICAgICAgICAgRUNvbW1hbmRTaG93VG9vbEJhciwgLy8vPFNob3dzIHRoZSB0b29sYmFy
DQorICAgICAgICAgICAgRUNvbW1hbmRTbWFydExpbmtTZW5kRW1haWwsIC8vLzwgDQorICAgICAg
ICAgICAgRUNvbW1hbmRTaG93QW5jaG9ySHJlZiwgIC8vLzxEaXNwbGF5IHRoZSBVUkwgb2YgYSBo
eXBlcmxpbmsgLSBzdXBwb3J0ZWQgb25seSBmb3IgSFRNTA0KKyAgICAgICAgICAgIEVDb21tYW5k
TG9hZEZvY3VzZWRJbWFnZSwgLy8vPExvYWQgdGhlIGZvY3Vlc2QgaW1hZ2UgLSBzdXBwb3J0ZWQg
b25seSBmb3IgSFRNTA0KKyAgICAgICAgICAgIEVDb21tYW5kVW5Mb2FkUGx1Z2luV2luZG93cw0K
ICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAgICogVGhlIGxvYWQgZXZlbnQg
dGhhdCBvY2N1cnJlZC4NCkBAIC00NDYsNiArNDUwLDcgQEANCiAgICAgICAgICAgICBFU2V0dGlu
Z3NBdXRvRm9ybUZpbGxFbmFibGVkLCAvLy88IEZvciBlbmFibGluZyB0aGUgYXV0byBmaWxsDQog
ICAgICAgICAgICAgRVNldHRpbmdzU2F2ZWRQYWdlLCAgICAgICAgICAgLy8vPCBTYXZlIHRoZSBw
YWdlDQogICAgICAgICAgICAgRVNldHRpbmdzU21hcnRMaW5rLA0KKyAgICAgICAgICAgIEVTZXR0
aW5nc0F1dG9PcGVuRG93bmxvYWRzLCAvLyBGb3IgYXV0b21hdGljYWxseSBvcGVuIHRoZSBkb3du
bG9hZGVkIGZpbGVzICAgICAgDQogICAgICAgICAgICAgRVNldHRpbmdzRGlzYWJsZUZsYXNoLCAv
Ly88RW5hYmxlL0Rpc2FibGUgdGhlIGZsYXNoDQogICAgICAgICAgICAgRVNldHRpbmdzTWF4RW51
bSAgICAgICAgICAgICAgLy8vPCBNdXN0IGJlIGxhc3Qgb25lDQogICAgICAgICAgICAgfTsNCkBA
IC01MjYsNyArNTMxLDggQEANCiAgICAgICAgICAgICBFQ2FwYWJpbGl0eUdyYXBoaWNhbFBhZ2Ug
ICAgPSAweDIwMDAsDQogICAgICAgICAgICAgRUNhcGFiaWxpdHlBY2Nlc3NLZXlzICAgICAgID0g
MHg0MDAwLA0KICAgICAgICAgICAgIEVDYXBhYmlsaXR5RmF2aWNvbiAgICAgICAgICA9IDB4ODAw
MCwNCi0gICAgICAgICAgICBFQ2FwYWJpbGl0eVRvb2xCYXIgICAgICAgICAgPSAweDAwMDEwMDAw
DQorICAgICAgICAgICAgRUNhcGFiaWxpdHlUb29sQmFyICAgICAgICAgID0gMHgwMDAxMDAwMCwN
CisgICAgICAgICAgICBFQ2FwYWJpbGl0eVdlYktpdExpdGUgICAgICAgPSAweDAwMDIwMDAwDQog
ICAgICAgICAgICAgfTsNCiANCiAgICAgICAgIC8qKg0KQEAgLTUzNyw3ICs1NDMsOCBAQA0KICAg
ICAgICAgICAgIEVQYWdlSW5mb1RpdGxlID0gMCwgLy8vPCBQYWdlIHRpdGxlLCBpZiBhIHRpdGxl
IHdhcyBzcGVjaWZpZWQNCiAgICAgICAgICAgICBFUGFnZUluZm9VcmwsICAgIC8vLzwgVVJMIG9m
IHRoZSBjdXJyZW50IHBhZ2UNCiAgICAgICAgICAgICBFUGFnZUluZm9Db250ZW50LCAvLy88IFBh
Z2UgY29udGVudCBhcyBhIHRleHQgYnVmZmVyDQotICAgICAgICAgICAgRVBhZ2VJbmZvU2F2ZWRQ
YWdlIC8vLzwgUGFnZSBjb250ZW50LCBpbmNsdWRpbmcgYWxsIGVtYmVkZGVkIGNvbnRlbnQsIGFz
IGEgYnVmZmVyDQorICAgICAgICAgICAgRVBhZ2VJbmZvU2F2ZWRQYWdlLCAvLy88IFBhZ2UgY29u
dGVudCwgaW5jbHVkaW5nIGFsbCBlbWJlZGRlZCBjb250ZW50LCBhcyBhIGJ1ZmZlcg0KKyAgICAg
ICAgICAgIEVQYWdlSW5mb0ZvY3VzZWROb2RlVXJsIC8vPCBVUkwgb2YgdGhlIGZvY3VzZWQgbGlu
ay4gVGhlIGZ1bmN0aW9uIGxlYXZlcyBpZiB0aGUgZm9jdXMgaXMgbm90IG9uIGFuIGFuY2hvciBv
ciBpbWFnZW1hcA0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAgICogSW5k
aWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgaXMgaW4gSW1hZ2UgTWFwIHZpZXcuDQpAQCAtNTUz
LDEwICs1NjAsOCBAQA0KICAgICAgICAgICAgIEVTdGF0ZVRodW1ibmFpbFZpZXcsIC8vLzwgRm9y
IGZ1dHVyZSB1c2UNCiAgICAgICAgICAgICBFU3RhdGVXbWxWaWV3LCAgICAgICAgLy8vPCBGb3Ig
V01MIHZpZXcNCiAgICAgICAgICAgICBFU3RhdGVTbWFydFRleHRWaWV3LCAgIC8vLzwgRm9yIFNt
YXJ0IHRleHQgcmVjb2duaXRpb24gbW9kZQ0KLSAgICAgICAgICAgIEVTdGF0ZVRvb2xCYXJNb2Rl
IC8vLzwgRm9yIHRvb2xiYXINCi0jaWZkZWYgUkRfMzJfQlJPV1NFUg0KLSAgICAgICAgICAgICwg
RVN0YXRlUGx1Z2luUGxheWVyDQotI2VuZGlmDQorICAgICAgICAgICAgRVN0YXRlVG9vbEJhck1v
ZGUsICAgICAgLy8vPCBGb3IgdG9vbGJhcg0KKyAgICAgICAgICAgIEVTdGF0ZVBsdWdpblBsYXll
cg0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAgICogVHlwZSBvZiB0aGUg
Zm9jdXNlZCBlbGVtZW50Lg0KQEAgLTYwNSw3ICs2MTAsOCBAQA0KICAgICAgICAgICAgIEVFbGVt
ZW50U2Nyb2xsQmFyLCAgICAvLy88IEEgc2Nyb2xsIGJhcg0KIA0KICAgICAgICAgICAgIEVFbGVt
ZW50U21hcnRMaW5rVGVsLCAvLy88IEEgdGVsZXBob25lIG51bWJlciBpbiB0aGUgcGFnZS4NCi0g
ICAgICAgICAgICBFRWxlbWVudFNtYXJ0TGlua0VtYWlsIC8vLzwgYW4gZW1haWwgYWRkcmVzcyBp
biB0aGUgcGFnZS4NCisgICAgICAgICAgICBFRWxlbWVudFNtYXJ0TGlua0VtYWlsLCAvLy88IGFu
IGVtYWlsIGFkZHJlc3MgaW4gdGhlIHBhZ2UuDQorICAgICAgICAgICAgRUVsZW1lbnRCcm9rZW5J
bWFnZSAvLy88IEEgbWlzc2luZyBpbWFnZSANCiAgICAgICAgIH07DQogDQogICAgICAgICAvKioN
CkBAIC03MTQsNyArNzIwLDkgQEANCiAgICAgZW51bSBUQnJDdGxDbGllbnRDb21tYW5kcw0KICAg
ICAgICAgew0KICAgICAgICAgRUNsaWVudENvbW1hbmRMYXVuY2hGaW5kS2V5d29yZCA9IDAsDQot
ICAgICAgICBFQ2xpZW50Q29tbWFuZFN1YnNjcmliZVRvRmVlZHMNCisgICAgICAgIEVDbGllbnRD
b21tYW5kU3Vic2NyaWJlVG9GZWVkcywNCisgICAgICAgIEVDbGllbnRDb21tYW5kU2hvd0NvbnRl
eHRNZW51LA0KKyAgICAgICAgRUNsaWVudENvbW1hbmRTZXR0aW5nc0NoYW5nZWQNCiAgICAgICAg
IH07DQogDQogICAgIC8qKg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxJ
bnRlcmZhY2UuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJD
dGxJbnRlcmZhY2UuaAkocmV2aXNpb24gMjQyNDcpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9s
L2luYy9CckN0bEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNzUsOCArNzUsOCBAQA0K
IGNsYXNzIE1XaWRnZXRFeHRlbnNpb247DQogY2xhc3MgQ0JyQ3RsSW50ZXJmYWNlOw0KIGNsYXNz
IENQbHVnaW5JbmZvOw0KK2NsYXNzIFRCckN0bEltYWdlQ2FycmllcjsNCiANCi0NCiAvKioNCiAq
IENyZWF0ZXMgdGhlIGJyb3dzZXIgY29udHJvbC4NCiAqDQpAQCAtNjA0LDYgKzYwNCwxNCBAQA0K
ICAgICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICovDQogICAgICAgICBJTVBPUlRfQyB2
aXJ0dWFsIE1XaWRnZXRFeHRlbnNpb24qIENyZWF0ZVdpZGdldEV4dGVuc2lvbkwoTVdpZGdldENh
bGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spID0gMDsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAg
KiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvY3VzZWQgaW1hZ2UuIFRoZSBmdW5jdGlvbiBs
ZWF2ZXMgaWYgdGhlIGZvY3VzIGlzIG5vdCBvbiBhbiBpbWFnZQ0KKyAgICAgICAgKiBAc2luY2Ug
My4yDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuIFRoZSByZXF1ZXN0ZWQg
aW5mb3JtYXRpb24NCisgICAgICAgICovDQorICAgICAgICBJTVBPUlRfQyB2aXJ0dWFsIFRCckN0
bEltYWdlQ2FycmllciogRm9jdXNlZEltYWdlTEMoKSA9IDA7DQogICAgIH07DQogDQogDQpJbmRl
eDogV2ViS2l0L0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0MjQ3KQ0KKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0x
LDMgKzEsMTMgQEANCisyMDA3LTA3LTEyICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0aG5hc2Ft
eUBub2tpYS5jb20+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuDQorICAg
ICAgICBERVNDOiBtZXJnZSBmaXhlcyBTWUFJLTczQVM2SyBhbmQgU1lBSS03M0FSWEsgZnJvbSAz
LjINCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzg5
DQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaDoNCisgICAgICAg
IChUQnJDdGxEZWZzOjopOg0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRl
cmZhY2UuaDogICAgICAgIA0KKw0KIDIwMDctMDctMDMgIHJhdGhuYXNhICA8c29ybmFsYXRoYS5y
YXRobmFzYW15QG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IHpidWp0YXNAZ21h
aWwuY29tLg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15494</attachid>
            <date>2007-07-12 13:20:38 -0700</date>
            <delta_ts>2007-07-12 13:41:37 -0700</delta_ts>
            <desc>3.1 patch</desc>
            <filename>widget_menu_enh_3.1_fix.patch</filename>
            <type>text/plain</type>
            <size>1201</size>
            <attacher name="Sornalatha Rathnasamy">sornalatha.rathnasamy</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCShyZXZpc2lvbiAyNDI0
NykNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtNTI2LDcgKzUyNiw4IEBADQogICAgICAgICAgICAgRUNhcGFiaWxpdHlHcmFwaGlj
YWxQYWdlICAgID0gMHgyMDAwLA0KICAgICAgICAgICAgIEVDYXBhYmlsaXR5QWNjZXNzS2V5cyAg
ICAgICA9IDB4NDAwMCwNCiAgICAgICAgICAgICBFQ2FwYWJpbGl0eUZhdmljb24gICAgICAgICAg
PSAweDgwMDAsDQotICAgICAgICAgICAgRUNhcGFiaWxpdHlUb29sQmFyICAgICAgICAgID0gMHgw
MDAxMDAwMA0KKyAgICAgICAgICAgIEVDYXBhYmlsaXR5VG9vbEJhciAgICAgICAgICA9IDB4MDAw
MTAwMDAsDQorICAgICAgICAgICAgRUNhcGFiaWxpdHlXZWJLaXRMaXRlICAgICAgID0gMHgwMDAy
MDAwMA0KICAgICAgICAgICAgIH07DQogDQogICAgICAgICAvKioNCkluZGV4OiBXZWJLaXQvQ2hh
bmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQyNDkp
DQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMyBAQA0K
KzIwMDctMDctMTIgIHJhdGhuYXNhICA8c29ybmFsYXRoYS5yYXRobmFzYW15QG5va2lhLmNvbT4N
CisNCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4NCisgICAgICAgIERFU0M6IG1l
cmdlIGZpeGVzIFNZQUktNzNBUzZLIGFuZCBTWUFJLTczQVJYSyBmcm9tIDMuMg0KKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzODkNCisNCisgICAgICAg
ICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oOg0KKyAgICAgICAgKFRCckN0bERlZnM6
Oik6DQorICAgICANCisNCiAyMDA3LTA3LTAzICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0aG5h
c2FteUBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSB6YnVqdGFzQGdtYWlsLmNv
bS4NCg==
</data>
<flag name="review"
          id="6438"
          type_id="1"
          status="-"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>