<?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>134175</bug_id>
          
          <creation_ts>2014-06-22 12:00:28 -0700</creation_ts>
          <short_desc>[Cocoa] No way to grant storage quotas for WebSQL</short_desc>
          <delta_ts>2014-06-23 11:26:05 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1017423</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-22 12:00:28 -0700</bug_when>
    <thetext>[Cocoa] No way to grant storage quotas for WebSQL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017424</commentid>
    <comment_count>1</comment_count>
      <attachid>233572</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-22 12:04:26 -0700</bug_when>
    <thetext>Created attachment 233572
Add WKUIDelegatePrivate method for increasing quota</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017426</commentid>
    <comment_count>2</comment_count>
      <attachid>233572</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-22 12:30:17 -0700</bug_when>
    <thetext>Comment on attachment 233572
Add WKUIDelegatePrivate method for increasing quota

I think this can be done with a completion handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017430</commentid>
    <comment_count>3</comment_count>
      <attachid>233572</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-22 13:52:59 -0700</bug_when>
    <thetext>Comment on attachment 233572
Add WKUIDelegatePrivate method for increasing quota

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h:36
&gt; +@property (nonatomic, readonly) NSString *protocol;
&gt; +@property (nonatomic, readonly) NSString *host;

These should be copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017437</commentid>
    <comment_count>4</comment_count>
      <attachid>233575</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-22 14:46:52 -0700</bug_when>
    <thetext>Created attachment 233575
Add WKUIDelegatePrivate method for increasing quota</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017438</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-22 14:48:27 -0700</bug_when>
    <thetext>Attachment 233575 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:4451:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:65:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:176:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:190:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:113:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1441:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017594</commentid>
    <comment_count>6</comment_count>
      <attachid>233575</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-23 10:27:01 -0700</bug_when>
    <thetext>Comment on attachment 233575
Add WKUIDelegatePrivate method for increasing quota

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm:48
&gt; +    _origin = origin;

Since WebCore security origins are mutable, I think it&apos;s safer if we copy it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017609</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-23 11:26:05 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r170303&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233572</attachid>
            <date>2014-06-22 12:04:26 -0700</date>
            <delta_ts>2014-06-22 13:52:59 -0700</delta_ts>
            <desc>Add WKUIDelegatePrivate method for increasing quota</desc>
            <filename>bug-134175-20140622120405.patch</filename>
            <type>text/plain</type>
            <size>21119</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDI3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTIyICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBObyB3YXkgdG8gZ3Jh
bnQgc3RvcmFnZSBxdW90YXMgZm9yIFdlYlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW46OnNlY3VyaXR5T3JpZ2luKTogQ2hhbmdlZCB0
byByZXR1cm4gYSBub24tY29uc3QgcmVmZXJlbmNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IERlY2xhcmVkIG5ldyBkZWxlZ2F0ZSBtZXRo
b2QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5T3JpZ2luLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4u
bW06IEFkZGVkLgorICAgICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBfaW5pdFdpdGhTZWN1cml0
eU9yaWdpbjpXZWJDb3JlOjpdKTogU3RvcmUgdGhlIG9yaWdpbiBpbiBhbiBpdmFyLgorICAgICAg
ICAoLVtfV0tTZWN1cml0eU9yaWdpbiBwcm90b2NvbF0pOiBBZGRlZCB0aGlzIGFjY2Vzc29yLgor
ICAgICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBob3N0XSk6IERpdHRvLgorICAgICAgICAoLVtf
V0tTZWN1cml0eU9yaWdpbiBwb3J0XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oOiBBZGRlZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6IE92ZXJyaWRlIEFQSTo6VUlDbGllbnQ6OmV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YS4gQWRkZWQgZmxhZworICAgICAgICB0byBtX2RlbGVnYXRlTWV0aG9k
cyBzdHJ1Y3QgZm9yIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVn
YXRlKTogU2V0IG5ldyBmbGFnIGluIG1fZGVsZWdhdGVNZXRob2RzIHN0cnVjdC4KKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IEFk
ZGVkLiBDYWxscyB0aGUgbmV3IGRlbGVnYXRlIG1ldGhvZC4KKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIHJlZmVyZW5jZXMgdG8gbmV3IGZpbGVzLCBz
b3J0ZWQgYSBncm91cC4KKwogMjAxNC0wNi0yMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgYSBjb3VwbGUgb2YgdXNlcyBvZiBiaW5kIHdp
dGggbGFtYmRhcwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2lu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2lu
LmgJKHJldmlzaW9uIDE3MDI1NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0
eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbikp
OwogICAgIH0KIAotICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9y
aWdpbigpIGNvbnN0IHsgcmV0dXJuICptX3NlY3VyaXR5T3JpZ2luOyB9CisgICAgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gKm1fc2VjdXJp
dHlPcmlnaW47IH0KIAogcHJpdmF0ZToKICAgICBXZWJTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oCShyZXZpc2lvbiAxNzAyNTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRF
bGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1NlY3VyaXR5T3JpZ2luLmg+CiAKIEBj
bGFzcyBfV0tGcmFtZUhhbmRsZTsKIApAQCAtMzUsNiArMzYsOSBAQAogCiBAb3B0aW9uYWwKIAor
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIFdLV2Vic2l0ZURhdGFTdG9y
ZSBkZWxlZ2F0ZS4KKy0gKHVuc2lnbmVkIGxvbmcgbG9uZylfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjooX1dLU2VjdXJp
dHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBkYXRhYmFzZTooTlNTdHJpbmcgKilkYXRhYmFzZUlk
ZW50aWZpZXIgY3VycmVudFF1b3RhOih1bnNpZ25lZCBsb25nIGxvbmcpY3VycmVudFF1b3RhIGN1
cnJlbnRPcmlnaW5Vc2FnZToodW5zaWduZWQgbG9uZyBsb25nKWN1cnJlbnRPcmlnaW5Vc2FnZSBj
dXJyZW50RGF0YWJhc2VVc2FnZToodW5zaWduZWQgbG9uZyBsb25nKWN1cnJlbnRVc2FnZSBleHBl
Y3RlZFVzYWdlOih1bnNpZ25lZCBsb25nIGxvbmcpZXhwZWN0ZWRVc2FnZTsKKwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAq
KWZyYW1lOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tTZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlP
cmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorQGludGVyZmFjZSBfV0tTZWN1cml0eU9yaWdpbiA6IE5TT2JqZWN0CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnByb3RvY29sOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqaG9zdDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgdW5zaWduZWQgc2hvcnQgcG9ydDsKKworQGVuZAorCisjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tT
ZWN1cml0eU9yaWdpbi5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiX1dLU2Vj
dXJpdHlPcmlnaW5JbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgorCitAaW1w
bGVtZW50YXRpb24gX1dLU2VjdXJpdHlPcmlnaW4geworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4gX29yaWdpbjsKK30KKworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNlY3Vy
aXR5T3JpZ2luOihQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPilvcmlnaW4KK3sK
KyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIGlmICghb3JpZ2luKSB7CisgICAgICAgIFtzZWxmIHJlbGVhc2VdOworICAgICAgICByZXR1
cm4gbmlsOworICAgIH0KKworICAgIF9vcmlnaW4gPSBvcmlnaW47CisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKE5TU3RyaW5nICopcHJvdG9jb2wKK3sKKyAgICByZXR1cm4gX29yaWdpbi0+cHJv
dG9jb2woKTsKK30KKworLSAoTlNTdHJpbmcgKilob3N0Cit7CisgICAgcmV0dXJuIF9vcmlnaW4t
Pmhvc3QoKTsKK30KKworLSAodW5zaWduZWQgc2hvcnQpcG9ydAoreworICAgIHJldHVybiBfb3Jp
Z2luLT5wb3J0KCk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5T3JpZ2luSW50
ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tTZWN1
cml0eU9yaWdpbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9
CisKK0BpbnRlcmZhY2UgX1dLU2VjdXJpdHlPcmlnaW4gKCkKKworLSAoaW5zdGFuY2V0eXBlKV9p
bml0V2l0aFNlY3VyaXR5T3JpZ2luOihQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PilvcmlnaW47CisKK0BlbmQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHJldmlzaW9uIDE3MDI1NykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYg
KzYyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikgb3Zl
cnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6
OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
Kiwgc3RkOjpmdW5jdGlvbjx2b2lkIChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRl
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFdURjo6U3RyaW5nJik+
IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBs
b25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJv
eHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJl
bnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQg
bG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2Up
IG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94eSopIG92ZXJyaWRlOwogICAgICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgICAgIHZpcnR1YWwgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JF
bGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZh
dWx0QWN0aW9ucykgb3ZlcnJpZGU7CkBAIC04MCw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgd2ViVmlld1J1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRC
eUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5KYXZh
U2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhh
bmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5KYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWxXaXRoUHJvbXB0RGVmYXVsdFRleHRJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIg
OiAxOworICAgICAgICBib29sIHdlYlZpZXdFeGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0
eU9yaWdpbkRhdGFiYXNlQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFi
YXNlVXNhZ2VFeHBlY3RlZFVzYWdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFt
ZSA6IDE7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICBib29sIHdlYlZpZXdBY3Rpb25zRm9y
RWxlbWVudERlZmF1bHRBY3Rpb25zIDogMTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAxNzAyNTcpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzcs
NiArMzcsNyBAQAogI2ltcG9ydCAiV0tXaW5kb3dGZWF0dXJlc0ludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFs
LmgiCisjaW1wb3J0ICJfV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC02Nyw2ICs2OCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUo
aWQgPFdLVUlEZWwKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuSmF2YVNjcmlwdEFs
ZXJ0UGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVy
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybVBh
bmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5KYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWxXaXRoUHJvbXB0RGVmYXVsdFRleHRJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFt
ZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RXhj
ZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZUN1cnJlbnRRdW90YUN1
cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZSA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmV4Y2VlZGVkRGF0YWJh
c2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOmN1cnJlbnRRdW90YTpjdXJyZW50T3Jp
Z2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByaW50RnJhbWU6KV07CiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRB
Y3Rpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
YWN0aW9uc0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CkBAIC0xNzEsNiArMTczLDE4IEBA
IHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3JpcHQKICAgICB9XTsKIH0KIAor
dW5zaWduZWQgbG9uZyBsb25nIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1
bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcg
Y3VycmVudFVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0ZWRVc2FnZSkKK3sKKyAgICBp
ZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RXhjZWVkZWREYXRhYmFz
ZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5V
c2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZSkKKyAgICAgICAgcmV0dXJuIGN1
cnJlbnRRdW90YTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0
ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY3VycmVudFF1b3Rh
OworCisgICAgcmV0dXJuIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJW
aWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJp
dHlPcmlnaW46YWRvcHROUyhbW19XS1NlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhTZWN1
cml0eU9yaWdpbjomc2VjdXJpdHlPcmlnaW4tPnNlY3VyaXR5T3JpZ2luKCldKS5nZXQoKSBkYXRh
YmFzZTpkYXRhYmFzZU5hbWUgY3VycmVudFF1b3RhOmN1cnJlbnRRdW90YSBjdXJyZW50T3JpZ2lu
VXNhZ2U6Y3VycmVudE9yaWdpblVzYWdlIGN1cnJlbnREYXRhYmFzZVVzYWdlOmN1cnJlbnRVc2Fn
ZSBleHBlY3RlZFVzYWdlOmV4cGVjdGVkVXNhZ2VdOworfQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiB3ZWJGcmFtZVByb3h5KQogewogICAgIEFTU0VSVF9BUkcod2ViRnJhbWVQcm94eSwg
d2ViRnJhbWVQcm94eSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNzAyNTcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTcx
MCw2ICs3MTAsOSBAQAogCQkzNzY5MDc5QTE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3NjkwNzk4MThGMzFDQjIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oICovOyB9OwogCQkzNzY5MDc5RTE4RjM0MEEyMDAxREZGMDQgLyogQVBJSW5q
ZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzNzY5MDc5QzE4RjM0MEEyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5k
bGVGb3JtQ2xpZW50LmggKi87IH07CiAJCTM3Njk0NTI1MTg0RkM2QjYwMENERTIxRiAvKiBTZWN1
cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICov
OyB9OworCQkzNzZDNTExOTE5NTc0NTJFMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW4ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzZDNTExNzE5
NTc0NTJFMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW4ubW0gKi87IH07CisJCTM3NkM1MTFB
MTk1NzQ1MkUwMDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc2QzUxMTgxOTU3NDUyRTAwMDdCMEZBIC8q
IF9XS1NlY3VyaXR5T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMzc2QzUxMUQxOTU3NEY1RjAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5T3Jp
Z2luSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3NkM1MTFCMTk1NzQ4QzIwMDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdpbkludGVybmFs
LmggKi87IH07CiAJCTM3N0VBRDQ1MTdFMkM1MUEwMDJEMTkzRCAvKiBXS0RlY2xhcmF0aW9uU3Bl
Y2lmaWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Mzc3RUFENDQxN0UyQzUxQTAwMkQxOTNEIC8qIFdLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzc3RUFENDgx
N0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc3RUFENDYxN0UyQzc3QjAw
MkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3N0VBRDQ5MTdFMkM3N0IwMDJEMTkz
RCAvKiBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzdFQUQ0NzE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yNzAzLDYgKzI3MDYsOSBAQAogCQkzNzYwODgyMTE1MDQxNEY3MDBG
QzgyQzcgLyogV0tSZW5kZXJPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tSZW5kZXJPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc2OTA3
OTgxOEYzMUNCMjAwMURGRjA0IC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50Lmg7IHBhdGggPSBBUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc2OTA3OUMxOEYzNDBBMjAwMURGRjA0IC8qIEFQSUlu
amVjdGVkQnVuZGxlRm9ybUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzc2QzUxMTcxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5T3JpZ2luLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLU2VjdXJpdHlPcmlnaW4u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3NkM1MTE4MTk1NzQ1MkUwMDA3QjBG
QSAvKiBfV0tTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tTZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzNzZD
NTExQjE5NTc0OEMyMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3N0VBRDQ0MTdFMkM1MUEwMDJEMTkzRCAv
KiBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzNzdFQUQ0NjE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzdFQUQ0NzE3RTJD
NzdCMDAyRDE5M0QgLyogV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTcxLDYgKzQ5NzcsOSBAQAogCQkJCTM3QTY0RTU2MThG
MzhGNDYwMEVCMzBGMSAvKiBfV0tGb3JtSW5wdXRTZXNzaW9uLmggKi8sCiAJCQkJMUE0M0U4Mjgx
ODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovLAogCQkJ
CTFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
bW0gKi8sCisJCQkJMzc2QzUxMTgxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5T3JpZ2lu
LmggKi8sCisJCQkJMzc2QzUxMTcxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5T3JpZ2lu
Lm1tICovLAorCQkJCTM3NkM1MTFCMTk1NzQ4QzIwMDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdp
bkludGVybmFsLmggKi8sCiAJCQkJMkQ2QjM3MTkxOEE5NjdBRDAwNDJBRTgwIC8qIF9XS1RodW1i
bmFpbFZpZXcuaCAqLywKIAkJCQkyRDZCMzcxQTE4QTk2N0FEMDA0MkFFODAgLyogX1dLVGh1bWJu
YWlsVmlldy5tbSAqLywKIAkJCQkyREFDRTY0RDE4QURCRkYwMDBFNENBNzYgLyogX1dLVGh1bWJu
YWlsVmlld0ludGVybmFsLmggKi8sCkBAIC00OTg4LDggKzQ5OTcsOCBAQAogCQkJCTM3QzRDMDg0
MTgxNDlDNUIwMDM2ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0gKi8sCiAJCQkJMzdD
NEMwODgxODE0OUYyMzAwMzY4OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgg
Ki8sCiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IuaCAqLywKLQkJCQkx
QTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyogV0tFcnJvckludGVybmFsLmggKi8sCiAJCQkJMUFG
NDU5MkMxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IubW0gKi8sCisJCQkJMUEyRDI1MkExOTQ2
ODhGRDAwNDUzN0IwIC8qIFdLRXJyb3JJbnRlcm5hbC5oICovLAogCQkJCTFBNEQ2NjRBMThBMzAz
MEUwMEQ4MkUyMSAvKiBXS0ZyYW1lSW5mby5oICovLAogCQkJCTFBNEQ2NjQ5MThBMzAzMEUwMEQ4
MkUyMSAvKiBXS0ZyYW1lSW5mby5tbSAqLywKIAkJCQkxQTRENjY0RDE4QTMwMzFCMDBEODJFMjEg
LyogV0tGcmFtZUluZm9JbnRlcm5hbC5oICovLApAQCAtNzA0Miw2ICs3MDUxLDcgQEAKIAkJCQkx
QTQzRTgyQTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxRjc1MDZCMzE4NTkxNjQ1MDBFQzBGRjcgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDUxN0UyQzUx
QTAwMkQxOTNEIC8qIFdLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzNzZDNTExRDE5NTc0RjVGMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUZCMDBBQzcxODVGNzY0NjAwMTkxNDJFIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDkxN0UyQzc3
QjAwMkQxOTNEIC8qIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI2MzE3MkNGMThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTcwNzIsNiArNzA4Miw3IEBACiAJCQkJQkM4Njk5QjUxMTZBQURBQTAw
MkE5MjVCIC8qIFdLVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4RjJGMkIxNjI3M0EyQzAw
NUZBQ0I1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFEODc5MEExOEI2QzM4QTAwNkNBRkQ3IC8qIFdLVUlEZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzc2QzUxMUExOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1Nl
Y3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlG
RjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RjlG
OTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
N0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKQEAgLTg5
ODcsNiArODk5OCw3IEBACiAJCQkJMUFCMzFBOTYxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNDRCOTU3MTZC
NzM3QUEwMEI3QkJEOCAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUZGNDkwMDE4MzNERTc4MDA5QUIxNUEgLyogV0tEZXByZWNhdGVkRnVuY3Rpb25zLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTM3NkM1MTE5MTk1NzQ1MkUwMDA3QjBGQSAvKiBfV0tTZWN1
cml0eU9yaWdpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0RENUJFMTgwREE3RDMwMDgxNjYw
QiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTY1NEVG
RDE4NEVGMzNGMDA3REM4MzcgLyogVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmlu
Z1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233575</attachid>
            <date>2014-06-22 14:46:52 -0700</date>
            <delta_ts>2014-06-23 10:27:00 -0700</delta_ts>
            <desc>Add WKUIDelegatePrivate method for increasing quota</desc>
            <filename>bug-134175-20140622144631.patch</filename>
            <type>text/plain</type>
            <size>26711</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDI3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTA2LTIyICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBObyB3YXkgdG8gZ3Jh
bnQgc3RvcmFnZSBxdW90YXMgZm9yIFdlYlNRTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW46OnNlY3VyaXR5T3JpZ2luKTogQ2hhbmdlZCB0
byByZXR1cm4gYSBub24tY29uc3QgcmVmZXJlbmNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKTogQWRkZWQgYSBjb21wbGV0aW9uIGhhbmRsZXIgcGFyYW1ldGVyIHRoYW4gdGFrZXMg
dGhlCisgICAgICAgIG5ldyBxdW90YSwgYW5kIGNoYW5nZWQgdGhlIHJldHVybiB0eXBlIHRvIHZv
aWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdL
UGFnZVNldFBhZ2VVSUNsaWVudCk6IENoYW5nZWQgdGhlIG92ZXJyaWRlIG9mIGV4Y2VlZGVkRGF0
YWJhc2VRdW90YSB0byBjYWxsIHRoZQorICAgICAgICBjb21wbGV0aW9uIGhhbmRsZXIgd2l0aCB0
aGUgbmV3IHF1b3RhLCBvciB3aXRoIHRoZSBleGlzdGluZyBxdW90YSBpZiB0aGUgY2xpZW50IGRv
ZXNu4oCZdAorICAgICAgICBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IERlY2xhcmVkIG5ldyBkZWxl
Z2F0ZSBtZXRob2QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5
T3JpZ2luLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJp
dHlPcmlnaW4ubW06IEFkZGVkLgorICAgICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBfaW5pdFdp
dGhTZWN1cml0eU9yaWdpbjpXZWJDb3JlOjpdKTogU3RvcmUgdGhlIG9yaWdpbiBpbiBhbiBpdmFy
LgorICAgICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBwcm90b2NvbF0pOiBBZGRlZCB0aGlzIGFj
Y2Vzc29yLgorICAgICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBob3N0XSk6IERpdHRvLgorICAg
ICAgICAoLVtfV0tTZWN1cml0eU9yaWdpbiBwb3J0XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oOiBBZGRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6IE92ZXJyaWRlIEFQSTo6VUlDbGll
bnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YS4gQWRkZWQgZmxhZworICAgICAgICB0byBtX2RlbGVn
YXRlTWV0aG9kcyBzdHJ1Y3QgZm9yIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OnNldERlbGVnYXRlKTogU2V0IG5ldyBmbGFnIGluIG1fZGVsZWdhdGVNZXRob2RzIHN0cnVjdC4K
KyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VR
dW90YSk6IEFkZGVkLiBDYWxscyB0aGUgbmV3IGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IFVwZGF0ZWQgZm9yIHRoZSBuZXcgY2xpZW50IGlu
dGVyZmFjZTogbm93CisgICAgICAgIHBhc3NpbmcgYSBjb21wbGV0aW9uIGhhbmRsZXIgdGhhdCBy
ZXBsaWVzIHdpdGggdGhlIG5ldyBxdW90YS4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogQWRkZWQgcmVmZXJlbmNlcyB0byBuZXcgZmlsZXMsIHNvcnRlZCBh
IGdyb3VwLgorCiAyMDE0LTA2LTIyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVwbGFjZSBhIGNvdXBsZSBvZiB1c2VzIG9mIGJpbmQgd2l0aCBsYW1i
ZGFzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAkocmV2
aXNpb24gMTcwMjU3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2lu
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKSk7CiAgICAg
fQogCi0gICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4gKm1fc2VjdXJpdHlPcmlnaW47IH0KKyAgICBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqbV9zZWN1cml0eU9yaWdp
bjsgfQogCiBwcml2YXRlOgogICAgIFdlYlNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE3MDI1NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDQ0
LDEyICs0NDQ0LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEK
ICAgICAgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAKICAgICAgICAgUmVmUHRyPFdlYlNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKHJlY29yZC0+b3JpZ2luSWRlbnRpZmll
cikpOwotCi0gICAgICAgIHVpbnQ2NF90IG5ld1F1b3RhID0gbV91aUNsaWVudC0+ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksCisgICAgICAgIGF1dG8gY3Vy
cmVudFJlcGx5ID0gcmVjb3JkLT5yZXBseTsKKyAgICAgICAgbV91aUNsaWVudC0+ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKHRoaXMsIGZyYW1lLCBvcmlnaW4uZ2V0KCksCiAgICAgICAgICAgICByZWNv
cmQtPmRhdGFiYXNlTmFtZSwgcmVjb3JkLT5kaXNwbGF5TmFtZSwgcmVjb3JkLT5jdXJyZW50UXVv
dGEsCi0gICAgICAgICAgICByZWNvcmQtPmN1cnJlbnRPcmlnaW5Vc2FnZSwgcmVjb3JkLT5jdXJy
ZW50RGF0YWJhc2VVc2FnZSwgcmVjb3JkLT5leHBlY3RlZFVzYWdlKTsKKyAgICAgICAgICAgIHJl
Y29yZC0+Y3VycmVudE9yaWdpblVzYWdlLCByZWNvcmQtPmN1cnJlbnREYXRhYmFzZVVzYWdlLCBy
ZWNvcmQtPmV4cGVjdGVkVXNhZ2UsCisgICAgICAgICAgICBbY3VycmVudFJlcGx5XSh1bnNpZ25l
ZCBsb25nIGxvbmcgbmV3UXVvdGEpIHsgY3VycmVudFJlcGx5LT5zZW5kKG5ld1F1b3RhKTsgfSk7
CiAKLSAgICAgICAgcmVjb3JkLT5yZXBseS0+c2VuZChuZXdRdW90YSk7CiAgICAgICAgIHJlY29y
ZCA9IHJlY29yZHMubmV4dCgpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgJKHJldmlzaW9uIDE3MDI1NykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDkg
KzExMCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhXZWJLaXQ6OldlYlBh
Z2VQcm94eSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkU2Nyb2xsKFdlYktpdDo6V2Vi
UGFnZVByb3h5KikgeyB9CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlZWRl
ZERhdGFiYXNlUXVvdGEoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqLCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25z
dCBXVEY6OlN0cmluZyYsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVk
IGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpCisgICAg
dmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJLaXQ6OldlYlBhZ2VQcm94eSos
IFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4qLCBjb25z
dCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgdW5zaWduZWQgbG9uZyBsb25nIGN1
cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZywgc3RkOjpmdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiBj
b21wbGV0aW9uSGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBjdXJyZW50UXVvdGE7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCBib29sIHJ1bk9wZW5QYW5lbChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSosIFdlYktpdDo6V2ViT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYktpdDo6V2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMTcwMjU3
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MzgsMTIgKzE0MzgsMTIgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
V0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQucGFnZURpZFNjcm9sbCh0b0FQSShw
YWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZp
cnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdlUHJv
eHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpc3Bs
YXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxv
bmcgY3VycmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudERhdGFiYXNl
VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlKSBvdmVycmlkZQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYlBhZ2VQcm94eSogcGFnZSwg
V2ViRnJhbWVQcm94eSogZnJhbWUsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVu
c2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdW5z
aWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAodW5zaWdu
ZWQgbG9uZyBsb25nKT4gY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZXhjZWVkZWREYXRhYmFzZVF1b3RhKQotICAgICAgICAg
ICAgICAgIHJldHVybiBjdXJyZW50UXVvdGE7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY3VycmVudFF1b3RhKTsKIAotICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LmV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4p
LCB0b0FQSShkYXRhYmFzZU5hbWUuaW1wbCgpKSwgdG9BUEkoZGF0YWJhc2VEaXNwbGF5TmFtZS5p
bXBsKCkpLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNl
VXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2NsaWVudC5leGNlZWRlZERhdGFiYXNlUXVvdGEodG9B
UEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkoZGF0YWJhc2VOYW1l
LmltcGwoKSksIHRvQVBJKGRhdGFiYXNlRGlzcGxheU5hbWUuaW1wbCgpKSwgY3VycmVudFF1b3Rh
LCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdl
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBm
cmFtZSwgV2ViT3BlblBhbmVsUGFyYW1ldGVycyogcGFyYW1ldGVycywgV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eSogbGlzdGVuZXIpIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aAkocmV2aXNpb24gMTcwMjU3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpZiBXS19BUElfRU5BQkxFRAogCiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tTZWN1cml0eU9yaWdpbi5oPgogCiBAY2xhc3Mg
X1dLRnJhbWVIYW5kbGU7CiAKQEAgLTM1LDYgKzM2LDkgQEAKIAogQG9wdGlvbmFsCiAKKy8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBXS1dlYnNpdGVEYXRhU3RvcmUgZGVs
ZWdhdGUuCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZURhdGFi
YXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjooX1dLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9y
aWdpbiBjdXJyZW50UXVvdGE6KHVuc2lnbmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgY3VycmVu
dE9yaWdpblVzYWdlOih1bnNpZ25lZCBsb25nIGxvbmcpY3VycmVudE9yaWdpblVzYWdlIGN1cnJl
bnREYXRhYmFzZVVzYWdlOih1bnNpZ25lZCBsb25nIGxvbmcpY3VycmVudFVzYWdlIGV4cGVjdGVk
VXNhZ2U6KHVuc2lnbmVkIGxvbmcgbG9uZylleHBlY3RlZFVzYWdlIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CisK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJh
bWVIYW5kbGUgKilmcmFtZTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5T3JpZ2lu
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFC
TEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK0BpbnRlcmZhY2UgX1dLU2VjdXJpdHlPcmlnaW4gOiBOU09iamVj
dAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpwcm90
b2NvbDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmhv
c3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHVuc2lnbmVkIHNob3J0IHBvcnQ7
CisKK0BlbmQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1NlY3VyaXR5T3JpZ2luLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2VjdXJpdHlPcmlnaW4ubW0JKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5T3JpZ2luLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIl9XS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQ
SV9FTkFCTEVECisKKyNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIF9XS1NlY3VyaXR5T3JpZ2luIHsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IF9vcmlnaW47Cit9CisKKy0gKGluc3Rh
bmNldHlwZSlfaW5pdFdpdGhTZWN1cml0eU9yaWdpbjooUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4pb3JpZ2luCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoIW9yaWdpbikgeworICAgICAgICBbc2VsZiBy
ZWxlYXNlXTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisKKyAgICBfb3JpZ2luID0gb3Jp
Z2luOworICAgIHJldHVybiBzZWxmOworfQorCistIChOU1N0cmluZyAqKXByb3RvY29sCit7Cisg
ICAgcmV0dXJuIF9vcmlnaW4tPnByb3RvY29sKCk7Cit9CisKKy0gKE5TU3RyaW5nICopaG9zdAor
eworICAgIHJldHVybiBfb3JpZ2luLT5ob3N0KCk7Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0KXBv
cnQKK3sKKyAgICByZXR1cm4gX29yaWdpbi0+cG9ydCgpOworfQorCitAZW5kCisKKyNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1NlY3VyaXR5
T3JpZ2luSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiX1dLU2VjdXJpdHlPcmlnaW4uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVE
CisKKyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworfQorCitAaW50ZXJmYWNlIF9XS1NlY3VyaXR5T3JpZ2luICgp
CisKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTZWN1cml0eU9yaWdpbjooUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4pb3JpZ2luOworCitAZW5kCisKKyNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAx
NzAyNTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
Y29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2
YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSosIHN0ZDo6ZnVuY3Rpb248dm9pZCAoYm9vbCk+IGNvbXBs
ZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kiwgc3RkOjpmdW5jdGlvbjx2b2lk
IChjb25zdCBXVEY6OlN0cmluZyYpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2Vi
RnJhbWVQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxv
bmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdlLCB1
bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0
ZWRVc2FnZSwgc3RkOjpmdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPikgb3ZlcnJp
ZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5
KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgdmlydHVhbCBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9uc0ZvckVsZW1lbnQo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0YWluUHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rp
b25zKSBvdmVycmlkZTsKQEAgLTgwLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3UnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVD
b21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkphdmFTY3JpcHRD
b25maXJtUGFuZWxXaXRoTWVzc2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6
IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQ
cm9tcHREZWZhdWx0VGV4dEluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1
cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRV
c2FnZURlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWUg
OiAxOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgYm9vbCB3ZWJWaWV3QWN0aW9uc0ZvckVs
ZW1lbnREZWZhdWx0QWN0aW9ucyA6IDE7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTcwMjU3KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbXBvcnQgIldLV2luZG93RmVhdHVyZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tVSURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5o
IgorI2ltcG9ydCAiX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNjcsNiArNjgsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlk
IDxXS1VJRGVsCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRBbGVy
dFBhbmVsV2l0aE1lc3NhZ2VJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRB
bGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuSmF2YVNjcmlwdENvbmZpcm1QYW5l
bFdpdGhNZXNzYWdlSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmly
bVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVs
V2l0aFByb21wdERlZmF1bHRUZXh0SW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2Ny
aXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6
Y29tcGxldGlvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lk
ZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5V
c2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFi
YXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdl
OmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTopXTsKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0FjdGlvbnNGb3JFbGVtZW50
RGVmYXVsdEFjdGlvbnMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzphY3Rpb25zRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczopXTsKQEAgLTE3MSw2ICsx
NzMsMjYgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuSmF2YVNjcmlwdAogICAgIH1d
OwogfQogCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
V2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV1RGOjpTdHJp
bmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25l
ZCBsb25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVu
dFVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0ZWRVc2FnZSwgc3RkOjpmdW5jdGlvbjx2
b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90
YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERh
dGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyKSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYg
KCFkZWxlZ2F0ZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI+IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUo
ZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9y
U2VjdXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0
YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBbKGlkIDxX
S1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJW
aWV3IGRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjphZG9wdE5TKFtbX1dLU2Vj
dXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFNlY3VyaXR5T3JpZ2luOiZzZWN1cml0eU9yaWdp
bi0+c2VjdXJpdHlPcmlnaW4oKV0pLmdldCgpIGN1cnJlbnRRdW90YTpjdXJyZW50UXVvdGEgY3Vy
cmVudE9yaWdpblVzYWdlOmN1cnJlbnRPcmlnaW5Vc2FnZSBjdXJyZW50RGF0YWJhc2VVc2FnZTpj
dXJyZW50VXNhZ2UgZXhwZWN0ZWRVc2FnZTpleHBlY3RlZFVzYWdlIGRlY2lzaW9uSGFuZGxlcjpb
Y29tcGxldGlvbkhhbmRsZXIsIGNoZWNrZXJdKHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YSkg
eworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIobmV3UXVvdGEpOworICAgIH1dOworfQorCiB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpX
ZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5KQogewogICAgIEFTU0VSVF9BUkcod2ViRnJhbWVQ
cm94eSwgd2ViRnJhbWVQcm94eSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNzAyNTcpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTcxMCw2ICs3MTAsOSBAQAogCQkzNzY5MDc5QTE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5q
ZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3NjkwNzk4MThGMzFDQjIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5oICovOyB9OwogCQkzNzY5MDc5RTE4RjM0MEEyMDAxREZGMDQgLyog
QVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzNzY5MDc5QzE4RjM0MEEyMDAxREZGMDQgLyogQVBJSW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50LmggKi87IH07CiAJCTM3Njk0NTI1MTg0RkM2QjYwMENERTIxRiAv
KiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3
b3JrICovOyB9OworCQkzNzZDNTExOTE5NTc0NTJFMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmln
aW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzZD
NTExNzE5NTc0NTJFMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW4ubW0gKi87IH07CisJCTM3
NkM1MTFBMTk1NzQ1MkUwMDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc2QzUxMTgxOTU3NDUyRTAwMDdC
MEZBIC8qIF9XS1NlY3VyaXR5T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzc2QzUxMUQxOTU3NEY1RjAwMDdCMEZBIC8qIF9XS1NlY3Vy
aXR5T3JpZ2luSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3NkM1MTFCMTk1NzQ4QzIwMDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdpbklu
dGVybmFsLmggKi87IH07CiAJCTM3N0VBRDQ1MTdFMkM1MUEwMDJEMTkzRCAvKiBXS0RlY2xhcmF0
aW9uU3BlY2lmaWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzc3RUFENDQxN0UyQzUxQTAwMkQxOTNEIC8qIFdLRGVjbGFyYXRpb25TcGVjaWZpZXJz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzc3
RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc3RUFENDYxN0Uy
Qzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3N0VBRDQ5MTdFMkM3N0Iw
MDJEMTkzRCAvKiBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzdFQUQ0NzE3RTJDNzdCMDAyRDE5M0QgLyog
V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0yNzAzLDYgKzI3MDYsOSBAQAogCQkzNzYwODgyMTE1MDQx
NEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tSZW5kZXJPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Mzc2OTA3OTgxOEYzMUNCMjAwMURGRjA0IC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFQSUluamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50Lmg7IHBhdGggPSBBUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc2OTA3OUMxOEYzNDBBMjAwMURGRjA0IC8q
IEFQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzc2QzUxMTcxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5T3JpZ2lu
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLU2VjdXJpdHlP
cmlnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3NkM1MTE4MTk1NzQ1MkUw
MDA3QjBGQSAvKiBfV0tTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tTZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzNzZDNTExQjE5NTc0OEMyMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tTZWN1cml0eU9yaWdpbkludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3N0VBRDQ0MTdFMkM1MUEwMDJE
MTkzRCAvKiBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzdFQUQ0NjE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzdFQUQ0
NzE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTcxLDYgKzQ5NzcsOSBAQAogCQkJCTM3QTY0
RTU2MThGMzhGNDYwMEVCMzBGMSAvKiBfV0tGb3JtSW5wdXRTZXNzaW9uLmggKi8sCiAJCQkJMUE0
M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICov
LAogCQkJCTFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24ubW0gKi8sCisJCQkJMzc2QzUxMTgxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5
T3JpZ2luLmggKi8sCisJCQkJMzc2QzUxMTcxOTU3NDUyRTAwMDdCMEZBIC8qIF9XS1NlY3VyaXR5
T3JpZ2luLm1tICovLAorCQkJCTM3NkM1MTFCMTk1NzQ4QzIwMDA3QjBGQSAvKiBfV0tTZWN1cml0
eU9yaWdpbkludGVybmFsLmggKi8sCiAJCQkJMkQ2QjM3MTkxOEE5NjdBRDAwNDJBRTgwIC8qIF9X
S1RodW1ibmFpbFZpZXcuaCAqLywKIAkJCQkyRDZCMzcxQTE4QTk2N0FEMDA0MkFFODAgLyogX1dL
VGh1bWJuYWlsVmlldy5tbSAqLywKIAkJCQkyREFDRTY0RDE4QURCRkYwMDBFNENBNzYgLyogX1dL
VGh1bWJuYWlsVmlld0ludGVybmFsLmggKi8sCkBAIC00OTg4LDggKzQ5OTcsOCBAQAogCQkJCTM3
QzRDMDg0MTgxNDlDNUIwMDM2ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0gKi8sCiAJ
CQkJMzdDNEMwODgxODE0OUYyMzAwMzY4OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbUludGVy
bmFsLmggKi8sCiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IuaCAqLywK
LQkJCQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyogV0tFcnJvckludGVybmFsLmggKi8sCiAJ
CQkJMUFGNDU5MkMxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IubW0gKi8sCisJCQkJMUEyRDI1
MkExOTQ2ODhGRDAwNDUzN0IwIC8qIFdLRXJyb3JJbnRlcm5hbC5oICovLAogCQkJCTFBNEQ2NjRB
MThBMzAzMEUwMEQ4MkUyMSAvKiBXS0ZyYW1lSW5mby5oICovLAogCQkJCTFBNEQ2NjQ5MThBMzAz
MEUwMEQ4MkUyMSAvKiBXS0ZyYW1lSW5mby5tbSAqLywKIAkJCQkxQTRENjY0RDE4QTMwMzFCMDBE
ODJFMjEgLyogV0tGcmFtZUluZm9JbnRlcm5hbC5oICovLApAQCAtNzA0Miw2ICs3MDUxLDcgQEAK
IAkJCQkxQTQzRTgyQTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjc1MDZCMzE4NTkxNjQ1MDBFQzBGRjcgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDUx
N0UyQzUxQTAwMkQxOTNEIC8qIFdLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzNzZDNTExRDE5NTc0RjVGMDAwN0IwRkEgLyogX1dLU2VjdXJpdHlPcmlnaW5JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZCMDBBQzcxODVGNzY0NjAwMTkxNDJFIC8qIFdL
V2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDkx
N0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2MzE3MkNGMThCNDY5NDkwMDY1QjlDMyAvKiBOYXRpdmVXZWJUb3VjaEV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTcwNzIsNiArNzA4Miw3IEBACiAJCQkJQkM4Njk5QjUxMTZB
QURBQTAwMkE5MjVCIC8qIFdLVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4RjJGMkIxNjI3
M0EyQzAwNUZBQ0I1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEODc5MEExOEI2QzM4QTAwNkNBRkQ3IC8qIFdLVUlE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzc2QzUxMUExOTU3NDUyRTAwMDdCMEZBIC8q
IF9XS1NlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTBGNDI3MjE3MkEwQzc0
MDA5MzlGRjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE2RjlGOTAxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1hbmRMaW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywK
QEAgLTg5ODcsNiArODk5OCw3IEBACiAJCQkJMUFCMzFBOTYxNkJDNjg4MTAwRjZEQkM5IC8qIFN0
b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNDRC
OTU3MTZCNzM3QUEwMEI3QkJEOCAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUZGNDkwMDE4MzNERTc4MDA5QUIxNUEgLyogV0tEZXByZWNhdGVkRnVuY3Rp
b25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM3NkM1MTE5MTk1NzQ1MkUwMDA3QjBGQSAvKiBf
V0tTZWN1cml0eU9yaWdpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0RENUJFMTgwREE3RDMw
MDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTY1NEVGRDE4NEVGMzNGMDA3REM4MzcgLyogVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8q
IFN0cmluZ1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAo=
</data>
<flag name="review"
          id="258068"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>