<?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>143696</bug_id>
          
          <creation_ts>2015-04-13 22:27:23 -0700</creation_ts>
          <short_desc>Clean up: Share more code between asynchronous and synchronous NSTextInputClient code paths</short_desc>
          <delta_ts>2015-04-13 22:40:16 -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>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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 name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1085057</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-04-13 22:27:23 -0700</bug_when>
    <thetext>We should share more code between the asynchronous and synchronous NSTextInputClient code paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085058</commentid>
    <comment_count>1</comment_count>
      <attachid>250693</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-04-13 22:29:12 -0700</bug_when>
    <thetext>Created attachment 250693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085060</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-13 22:32:24 -0700</bug_when>
    <thetext>Attachment 250693 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:2285:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:2307:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:2345:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:2386:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 2 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>1085062</commentid>
    <comment_count>3</comment_count>
      <attachid>250693</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 22:40:16 -0700</bug_when>
    <thetext>Comment on attachment 250693
Patch

rs=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250693</attachid>
            <date>2015-04-13 22:29:12 -0700</date>
            <delta_ts>2015-04-13 22:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>CleanupASYNC_NSTEXTINPUTCLIENT_041315.patch</filename>
            <type>text/plain</type>
            <size>10445</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4Mjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA0LTEzICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cDogU2hhcmUgbW9y
ZSBjb2RlIGJldHdlZW4gYXN5bmNocm9ub3VzIGFuZCBzeW5jaHJvbm91cyBOU1RleHRJbnB1dENs
aWVudCBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDM2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIG9mIC1wZXJmb3JtS2V5RXF1aXZhbGVudCwgLWtl
eVVwLCAta2V5RG93biwgYW5kIC1mbGFnc0NoYW5nZWQgYXJlIGFsbW9zdAorICAgICAgICBpZGVu
dGljYWwgZm9yIGJvdGggdGhlIGFzeW5jaHJvbm91cyBhbmQgc3luY2hyb25vdXMgdmFyaWFudHMg
b2YgdGhlIE5TVGV4dElucHV0Q2xpZW50IHByb3RvY29sLgorICAgICAgICBXZSBzaG91bGQgc2hh
cmUgdGhlIGNvbW1vbiBjb2RlIHRvIHJlbW92ZSBkdXBsaWNhdGlvbiBhbmQgbWFrZSBtYWludGVu
YW5jZSBvZiB0aGlzIGNvZGUgbGVzcyBlcnJvciBwcm9uZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHBlcmZvcm1LZXlFcXVpdmFs
ZW50Ol0pOiBBZGQgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKS1ndWFyZGVkIGNvZGUuCisg
ICAgICAgICgtW1dLVmlldyBrZXlVcDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVmlldyBrZXlE
b3duOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tWaWV3IGZsYWdzQ2hhbmdlZDpdKTogRGl0dG8u
CisKIDIwMTUtMDQtMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgQnVpbGQgZml4ZXMgYWZ0ZXIgcjE4Mjc3Mi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDE4Mjc4MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTkw
MywxMDQgKzE5MDMsNiBAQCAtIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5T
CiAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgMCwgMCwgMCk7CiB9CiAKLS0gKEJPT0wpcGVyZm9y
bUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAotewotICAgIGlmIChfZGF0YS0+X2lnbm9y
ZXNOb25XaGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgLy8gVGhlcmUncyBh
IGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBl
dmVudCBsb29wLCBhbmQKLSAgICAvLyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNl
IHRoZSBvbGQgb25lLiBSZXRhaW5pbmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZwotICAgIC8vIHRo
ZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNp
ZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgotICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFz
ZV07Ci0KLSAgICAvLyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVy
IEVzYyBvciBDbWQrcGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0
aGUgbGF0dGVyIHN0YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAotICAgIC8vIGJ1dCBib3RoIGdl
dCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdo
aWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCi0g
ICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJh
bmN5IGFuZCBpbmZpbml0ZSBsb29wcy4KLSAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3Jp
bmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQotICAgICAgICBy
ZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLQotICAgIGlmIChfZGF0
YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7Ci0gICAgICAgIC8vIFdlYkNvcmUgaGFzIGFs
cmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgotICAg
ICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIGdldCBtdWx0aXBsZSBldmVudHMgZm9yIGVhY2ggZXZl
bnQgYmVpbmcgcmUtc2VudC4gRm9yIGV4YW1wbGUsIGZvciBDbWQrJz0nIEFwcEtpdAotICAgICAg
ICAvLyBmaXJzdCBwZXJmb3JtcyB0aGUgb3JpZ2luYWwga2V5IGVxdWl2YWxlbnQsIGFuZCBpZiB0
aGF0IGlzbid0IGhhbmRsZWQsIGl0IGRpc3BhdGNoZXMgYSBzeW50aGV0aWMgQ21kKycrJy4KLSAg
ICAgICAgcmV0dXJuIFtzdXBlciBwZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0gICAgfQot
Ci0gICAgQVNTRVJUKGV2ZW50ID09IFtOU0FwcCBjdXJyZW50RXZlbnRdKTsKLQotICAgIFtzZWxm
IF9kaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5XTsKLQotICAgIC8vIFBhc3Mga2V5
IGNvbWJvcyB0aHJvdWdoIFdlYkNvcmUgaWYgdGhlcmUgaXMgYSBrZXkgYmluZGluZyBhdmFpbGFi
bGUgZm9yCi0gICAgLy8gdGhpcyBldmVudC4gVGhpcyBsZXRzIHdlYnBhZ2VzIGhhdmUgYSBjcmFj
ayBhdCBpbnRlcmNlcHRpbmcga2V5LW1vZGlmaWVkIGtleXByZXNzZXMuCi0gICAgLy8gRklYTUU6
IFdoeSBpcyB0aGUgZmlyc3RSZXNwb25kZXIgY2hlY2sgbmVlZGVkPwotICAgIGlmIChzZWxmID09
IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSkgewotICAgICAgICBbc2VsZiBfaW50ZXJw
cmV0S2V5RXZlbnQ6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAg
ICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKLSAgICAgICAg
fV07Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBbc3VwZXIg
cGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotfQotCi0tICh2b2lkKWtleVVwOihOU0V2ZW50
ICopdGhlRXZlbnQKLXsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIExPRyhUZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIHRoZUV2
ZW50LCB0aGVFdmVudCk7Ci0KLSAgICBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6dGhlRXZlbnQg
Y29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0
b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAgQVNTRVJUKCFoYW5kbGVk
QnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBfZGF0YS0+X3Bh
Z2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7Ci0gICAgfV07Ci19Ci0KLS0gKHZvaWQp
a2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50Ci17Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElucHV0LCAia2V5
RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gX2RhdGEtPl9r
ZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7Ci0KLSAgICBpZiAo
W3NlbGYgX3RyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duOnRoZUV2ZW50XSkg
ewotICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uaGFuZGxlZCBieSBwbHVnLWluIik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBXZSBjb3VsZCBiZSByZWNlaXZpbmcgYSBrZXkg
ZG93biBmcm9tIEFwcEtpdCBpZiB3ZSBoYXZlIHJlLXNlbnQgYW4gZXZlbnQKLSAgICAvLyB0aGF0
IG1hcHMgdG8gYW4gYWN0aW9uIHRoYXQgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlIChmb3IgZXhh
bXBsZSBhIGNvcHkgd2hlbgotICAgIC8vIHRoZXJlIGlzIG5vIHJhbmdlIHNlbGVjdGlvbikuCi0g
ICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSB3ZSBzaG91bGQgaWdub3JlIHRoZSBrZXkgZG93bi4K
LSAgICBpZiAoX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9PSB0aGVFdmVudCkgewot
ICAgICAgICBbc3VwZXIga2V5RG93bjp0aGVFdmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRs
ZXI6XihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21t
YW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8
fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJv
YXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbW1hbmRzKSk7Ci0gICAgfV07Ci19Ci0KLS0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihO
U0V2ZW50ICopdGhlRXZlbnQKLXsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVu
dHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6
JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwotCi0gICAgdW5zaWduZWQgc2hvcnQga2V5Q29k
ZSA9IFt0aGVFdmVudCBrZXlDb2RlXTsKLQotICAgIC8vIERvbid0IG1ha2UgYW4gZXZlbnQgZnJv
bSB0aGUgbnVtIGxvY2sgYW5kIGZ1bmN0aW9uIGtleXMKLSAgICBpZiAoIWtleUNvZGUgfHwga2V5
Q29kZSA9PSAxMCB8fCBrZXlDb2RlID09IDYzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbc2Vs
ZiBfaW50ZXJwcmV0S2V5RXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMpIHsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQodGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
OwotICAgIH1dOwotfQotCiAjZWxzZSAvLyBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAK
IC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgc2F2aW5nQ29tbWFu
ZHNUbzooVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKWNvbW1hbmRzCkBAIC0yMzQ2
LDYgKzIyNDgsOCBAQCAtIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5TCiAg
ICAgcmV0dXJuIHJlc3VsdFJlY3Q7CiB9CiAKKyNlbmRpZiAvLyBVU0UoQVNZTkNfTlNURVhUSU5Q
VVRDTElFTlQpCisKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVu
dAogewogICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKQEAgLTIzNzcsMTIg
KzIyODEsMTggQEAgLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKQogICAg
IC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3ZWJwYWdlcyBoYXZlIGEgY3JhY2sgYXQgaW50ZXJj
ZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVzc2VzLgogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhl
IGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KICAgICBpZiAoc2VsZiA9PSBbW3NlbGYgd2lu
ZG93XSBmaXJzdFJlc3BvbmRlcl0pIHsKKyNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQp
CisgICAgICAgIFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDpldmVudCBjb21wbGV0aW9uSGFuZGxl
cjpeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1h
bmQ+JiBjb21tYW5kcykgeworICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2Fy
ZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBjb21tYW5kcykpOworICAgICAgICB9XTsKKyNlbHNlCiAgICAgICAgIFZlY3RvcjxLZXlwcmVz
c0NvbW1hbmQ+IGNvbW1hbmRzOwogICAgICAgICBCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kID0g
W3NlbGYgX2ludGVycHJldEtleUV2ZW50OmV2ZW50IHNhdmluZ0NvbW1hbmRzVG86Y29tbWFuZHNd
OwogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisjZW5k
aWYKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gW3N1cGVy
IHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKIH0KIApAQCAtMjM5Myw3ICsyMzAzLDE0IEBA
IC0gKHZvaWQpa2V5VXA6KE5TRXZlbnQgKil0aGVFdmVudAogCiAgICAgTE9HKFRleHRJbnB1dCwg
ImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKICAgICAvLyBXZSBkb24ndCBpbnRl
cnByZXQgdGhlIGtleVVwIGV2ZW50LCBhcyB0aGlzIGJyZWFrcyBrZXkgYmluZGluZ3MgKHNlZSA8
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDEwMD4pLgorI2lmIFVT
RShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKyAgICBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6
dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBj
b25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICAgICAgQVNTRVJU
KCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOworICAgICAgICBf
ZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0
aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgfV07CisjZWxz
ZQogICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KHRoZUV2ZW50LCBmYWxzZSwgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4oKSkpOworI2Vu
ZGlmCiB9CiAKIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CkBAIC0yNDAzLDEw
ICsyMzIwLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiAKICAgICBM
T0coVGV4dElucHV0LCAia2V5RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhl
RXZlbnQgPT0gX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIg
OiAiIik7CiAKKyNpZiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogICAgIC8vIFRoZXJl
J3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0
ZWQgZXZlbnQgbG9vcCwgYW5kCiAgICAgLy8gZmV0Y2hpbmcgYSBuZXcgZXZlbnQgbWlnaHQgcmVs
ZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1dG9yZWxlYXNpbmcKICAgICAv
LyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHByb2JsZW0g
aW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KICAgICBbW3RoZUV2ZW50IHJldGFpbl0gYXV0
b3JlbGVhc2VdOworI2VuZGlmCiAKICAgICBpZiAoW3NlbGYgX3RyeUhhbmRsZVBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRLZXlEb3duOnRoZUV2ZW50XSkgewogICAgICAgICBMT0coVGV4dElucHV0LCAi
Li4uaGFuZGxlZCBieSBwbHVnLWluIik7CkBAIC0yNDIyLDYgKzIzNDEsMTIgQEAgLSAodm9pZClr
ZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorI2lm
IFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKyAgICBbc2VsZiBfaW50ZXJwcmV0S2V5RXZl
bnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICAgICAgQVNT
RVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOworICAgICAg
ICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgfV07Cisj
ZWxzZQogICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwogICAgIEJPT0wgaGFu
ZGxlZEJ5SW5wdXRNZXRob2QgPSBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6dGhlRXZlbnQgc2F2
aW5nQ29tbWFuZHNUbzpjb21tYW5kc107CiAgICAgaWYgKCFjb21tYW5kcy5pc0VtcHR5KCkpIHsK
QEAgLTI0MzIsNiArMjM1Nyw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50
CiAgICAgfQogCiAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQodGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
OworI2VuZGlmCiB9CiAKIC0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICopdGhlRXZlbnQK
QEAgLTI0NDEsMTAgKzIzNjcsMTIgQEAgLSAodm9pZClmbGFnc0NoYW5nZWQ6KE5TRXZlbnQgKil0
aGVFdmVudAogCiAgICAgTE9HKFRleHRJbnB1dCwgImZsYWdzQ2hhbmdlZDolcCAlQCIsIHRoZUV2
ZW50LCB0aGVFdmVudCk7CiAKKyNpZiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogICAg
IC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBy
dW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCiAgICAgLy8gZmV0Y2hpbmcgYSBuZXcgZXZlbnQg
bWlnaHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1dG9yZWxlYXNp
bmcKICAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBh
IHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KICAgICBbW3RoZUV2ZW50IHJl
dGFpbl0gYXV0b3JlbGVhc2VdOworI2VuZGlmCiAKICAgICB1bnNpZ25lZCBzaG9ydCBrZXlDb2Rl
ID0gW3RoZUV2ZW50IGtleUNvZGVdOwogCkBAIC0yNDUyLDExICsyMzgwLDE1IEBAIC0gKHZvaWQp
ZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICopdGhlRXZlbnQKICAgICBpZiAoIWtleUNvZGUgfHwga2V5
Q29kZSA9PSAxMCB8fCBrZXlDb2RlID09IDYzKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0Uo
QVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2Fy
ZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhlRXZlbnQsIGZhbHNlLCBWZWN0b3I8S2V5
cHJlc3NDb21tYW5kPigpKSk7CisjZWxzZQorICAgIFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDp0
aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgeworICAgICAgICBfZGF0YS0+
X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVu
dCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgfV07CisjZW5kaWYKIH0K
IAotI2VuZGlmIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKLQogLSAoTlNBcnJheSAq
KXZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQKIHsKICAgICBzdGF0aWMgTlNBcnJheSAqdmFs
aWRBdHRyaWJ1dGVzOwo=
</data>
<flag name="review"
          id="275492"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>