Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
g

Test String

Substitution

Processing...

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "([^=]+)=([^&]*)&"; final String string = "ctl00$ToolkitScriptManager1=ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$upGVDiagSec|ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$GVDiagnosticosSecundarios$ctl03$ddlDiagSegMarcDiag&ToolkitScriptManager1_HiddenField=&ContentPlaceHolder1_TabSol_ClientState={\"ActiveTabIndex\":0,\"TabState\":[true,false,true]}&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$tidDiagnosticos$ctl00=486&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$tidDiagnosticos$desc=NEUMONIA ORGANISMO SIN ESPECIFICAR&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$ddlMarcadorDiagnostico=S&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$hdnConfirmBorradoDiagSec=0&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$GVDiagnosticosSecundarios$ctl02$ddlDiagSegMarcDiag=S&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$GVDiagnosticosSecundarios$ctl03$ddlDiagSegMarcDiag=E&ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$hdnConfirmBorradoCausaExterna=0&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$tidProcPrincipal$ctl00=&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$tidProcPrincipal$desc=&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$hdnConfirmRemoveOtroProc=&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$tidProcPrincipalExterno$ctl00=&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$tidProcPrincipalExterno$desc=&ctl00$ContentPlaceHolder1$TabSol$TabProcedimientos$hdnConfirmRemoveOtroProcExterno=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$tidOtrosProcPrincipal$ctl00=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$tidOtrosProcPrincipal$desc=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$hdnConfirmRemoveOpOtrosProc=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$tidProcPrincipalExternoOP$ctl00=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$tidProcPrincipalExternoOP$desc=&ctl00$ContentPlaceHolder1$TabSol$tbOtrosProcedimientos$hdnConfirmRemoveOPOtrosProcExt=&ctl00$ContentPlaceHolder1$TKDialogBusqueda$ctl04$selectedValue=-1&__EVENTTARGET=ctl00$ContentPlaceHolder1$TabSol$TabDiagnosticos$GVDiagnosticosSecundarios$ctl03$ddlDiagSegMarcDiag&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=/wEPDwUKMTI1MjMyNzY2MA8WDB4WX19QYWdlTGlzdERpYWdTZWNIb3NwaTLlEQABAAAA/////wEAAAAAAAAADAIAAAA+VGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAH5TeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1RrQ0RfQkwuRGlhZ25vc3RpY29zQWx0YUgsIFRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAABtUa0NEX0JMLkRpYWdub3N0aWNvc0FsdGFIW10CAAAACAgJAwAAAAIAAAACAAAABwMAAAAAAQAAAAQAAAAEGVRrQ0RfQkwuRGlhZ25vc3RpY29zQWx0YUgCAAAACQQAAAAJBQAAAA0CBQQAAAAZVGtDRF9CTC5EaWFnbm9zdGljb3NBbHRhSB8AAAAKbXN0ckNhbXBvNwptc3RyQ2FtcG84Cm1zdHJDYW1wbzkRbXN0cklkRGlhZ25vc3RpY28NbXN0cklkVmVyc2lvbhFtc3RyTnVtQXNpc3RlbmNpYQttc3RyT3JkZW5EZw9tc3RyT3JkZW5UaXBvRGcNbXN0clNpdHVhY2lvbhNtc3RyVGV4dERpYWdub3N0aWNvCm1zdHJUaXBvRGcXbXN0ck1hcmNhZG9yRGlhZ25vc3RpY28PbW9iakRpYWdub3N0aWNvCW1ib2xOdWV2bxJtc3RyQXVkaXRBbnVsYWNpb24RbXN0ckF1ZGl0Q3JlYWNpb24VbXN0ckF1ZGl0TW9kaWZpY2FjaW9uFm1zdHJJZFVzdWFyaW9BbnVsYWNpb24VbXN0cklkVXN1YXJpb0NyZWFjaW9uGW1zdHJJZFVzdWFyaW9Nb2RpZmljYWNpb24TbWJvbEFjdHVhbGl6YXJUYWJsYQ9Vc2VUcmFuc2FjdGlvbnMRVGtUYWJsZSttYm9sTnVldm8aVGtUYWJsZSttc3RyQXVkaXRBbnVsYWNpb24ZVGtUYWJsZSttc3RyQXVkaXRDcmVhY2lvbh1Ua1RhYmxlK21zdHJBdWRpdE1vZGlmaWNhY2lvbh5Ua1RhYmxlK21zdHJJZFVzdWFyaW9BbnVsYWNpb24dVGtUYWJsZSttc3RySWRVc3VhcmlvQ3JlYWNpb24hVGtUYWJsZSttc3RySWRVc3VhcmlvTW9kaWZpY2FjaW9uG1RrVGFibGUrbWJvbEFjdHVhbGl6YXJUYWJsYRdUa1RhYmxlK1VzZVRyYW5zYWN0aW9ucwEBAQEBAQEBAQEBAQQAAQEBAQEBAAAAAQEBAQEBAAAUVGtDRF9CTC5EaWFnbm9zdGljb3MCAAAAAQEBAQEBAgAAAAYGAAAAAAkGAAAACQYAAAAGBwAAAAYyNTAuMDAGCAAAAAE0BgkAAAAJMTZIMDAyOTQwBgoAAAACLTEGCwAAAAExBgwAAAABMgkGAAAABg4AAAABMgYPAAAAAVMJEAAAAAEJBgAAAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAAAQEJBgAAAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAAAQEFAAAABAAAAAkGAAAACQYAAAAJBgAAAAYSAAAAAzU4NgYTAAAAATQGFAAAAAkxNkgwMDI5NDAGFQAAAAItMQYWAAAAATIGFwAAAAEyCQYAAAAGGQAAAAEyBhoAAAABTgkbAAAAAQkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABAQkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABBRAAAAAUVGtDRF9CTC5EaWFnbm9zdGljb3MXAAAAD21zdHJEZXNjcmlwY2lvbhFtc3RySWREaWFnbm9zdGljbw1tc3RySWRWZXJzaW9uEG1zdHJJbmVzcGVjaWZpY28RbXN0clZlcnNpb25BY3RpdmEJbWJvbE51ZXZvEm1zdHJBdWRpdEFudWxhY2lvbhFtc3RyQXVkaXRDcmVhY2lvbhVtc3RyQXVkaXRNb2RpZmljYWNpb24WbXN0cklkVXN1YXJpb0FudWxhY2lvbhVtc3RySWRVc3VhcmlvQ3JlYWNpb24ZbXN0cklkVXN1YXJpb01vZGlmaWNhY2lvbhNtYm9sQWN0dWFsaXphclRhYmxhD1VzZVRyYW5zYWN0aW9ucxFUa1RhYmxlK21ib2xOdWV2bxpUa1RhYmxlK21zdHJBdWRpdEFudWxhY2lvbhlUa1RhYmxlK21zdHJBdWRpdENyZWFjaW9uHVRrVGFibGUrbXN0ckF1ZGl0TW9kaWZpY2FjaW9uHlRrVGFibGUrbXN0cklkVXN1YXJpb0FudWxhY2lvbh1Ua1RhYmxlK21zdHJJZFVzdWFyaW9DcmVhY2lvbiFUa1RhYmxlK21zdHJJZFVzdWFyaW9Nb2RpZmljYWNpb24bVGtUYWJsZSttYm9sQWN0dWFsaXphclRhYmxhF1RrVGFibGUrVXNlVHJhbnNhY3Rpb25zAQEBAQEAAQEBAQEBAAAAAQEBAQEBAAABAQEBAQECAAAABh0AAAA8RC5NLi4gU0lOIE1FTkNJT04gQ09NUEwuIFRJUE8gSUkgTyBOTyBFU1AuICwgTk8gSU5ESUNBREEgQ09NBh4AAAAGMjUwLjAwBh8AAAABNAYgAAAABUZhbHNlBiEAAAAEVHJ1ZQAJBgAAAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAAAQAJBgAAAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAAAQEbAAAAEAAAAAYjAAAAEEZBTExPIFJFTkFMIE5FT00GJAAAAAM1ODYGJQAAAAE0BiYAAAAFRmFsc2UGJwAAAARUcnVlAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABCx4YX19QYWdlTGlzdENhdXNhc0V4dEhvc3BpMtMCAAEAAAD/////AQAAAAAAAAAMAgAAAD5Ua0NEX0JMLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAflN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbVGtDRF9CTC5EaWFnbm9zdGljb3NBbHRhSCwgVGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAG1RrQ0RfQkwuRGlhZ25vc3RpY29zQWx0YUhbXQIAAAAICAkDAAAAAAAAAAAAAAAHAwAAAAABAAAAAAAAAAQZVGtDRF9CTC5EaWFnbm9zdGljb3NBbHRhSAIAAAALHhRfX1BhZ2VQcm9jZWRpbWllbnRvczLoCwABAAAA/////wEAAAAAAAAADAIAAAA+VGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwFAQAAACVUa0NEX0JMLkluZkNvZGlmaWNhY2lvblByb2NlZGltaWVudG9zBgAAABFtc3RyTnVtQXNpc3RlbmNpYRJtb2JqSW50ZXJ2ZW5jaW9uZXMdbW9ialByb2NlZGltaWVudG9zUHJpbmNpcGFsZXMlbW9ialByb2NlZGltaWVudG9zUHJpbmNpcGFsZXNFeHRlcm5vcxdtb2JqT3Ryb3NQcm9jZWRpbWllbnRvcx9tb2JqT3Ryb3NQcm9jZWRpbWllbnRvc0V4dGVybm9zAQMEBAMDe1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbVGtDRF9CTC5Ua2dxUGV0aWNpb25lcywgVGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXSdUa0NEX0JMLlRrZ3FQcm9jZWRpbWllbnRvc0NvZGlmaWNhZG9zW10CAAAAJ1RrQ0RfQkwuVGtncVByb2NlZGltaWVudG9zQ29kaWZpY2Fkb3NbXQIAAACMAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbVGtDRF9CTC5Ua2dxUHJvY2VkaW1pZW50b3NDb2RpZmljYWRvcywgVGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXVtdjAFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1RrQ0RfQkwuVGtncVByb2NlZGltaWVudG9zQ29kaWZpY2Fkb3MsIFRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV1bXQIAAAAGAwAAAAkxNkgwMDI5NDAJBAAAAAkFAAAACQYAAAAJBwAAAAkIAAAABAQAAAB7U3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tUa0NEX0JMLlRrZ3FQZXRpY2lvbmVzLCBUa0NEX0JMLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAYVGtDRF9CTC5Ua2dxUGV0aWNpb25lc1tdAgAAAAgICQkAAAAAAAAAAAAAAAcFAAAAAAEAAAABAAAABCVUa0NEX0JMLlRrZ3FQcm9jZWRpbWllbnRvc0NvZGlmaWNhZG9zAgAAAAoHBgAAAAABAAAAAQAAAAQlVGtDRF9CTC5Ua2dxUHJvY2VkaW1pZW50b3NDb2RpZmljYWRvcwIAAAAKBwcAAAAAAQAAAAEAAAADigFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1RrQ0RfQkwuVGtncVByb2NlZGltaWVudG9zQ29kaWZpY2Fkb3MsIFRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0KBwgAAAAAAQAAAAEAAAADigFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1RrQ0RfQkwuVGtncVByb2NlZGltaWVudG9zQ29kaWZpY2Fkb3MsIFRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0KBwkAAAAAAQAAAAAAAAAEFlRrQ0RfQkwuVGtncVBldGljaW9uZXMCAAAACx4dX19QYWdlX1RhYjNPdHJvc1Byb2NPdHJvc1Byb2My6QIAAQAAAP////8BAAAAAAAAAAwCAAAAPlRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBAEAAACFAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbVGtDRF9CTC5Ua2hvT3Ryb3NQcm9jQ29kaWZpY2Fkb3MsIFRrQ0RfQkwsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAACJUa0NEX0JMLlRraG9PdHJvc1Byb2NDb2RpZmljYWRvc1tdAgAAAAgICQMAAAAAAAAAAAAAAAcDAAAAAAEAAAAAAAAABCBUa0NEX0JMLlRraG9PdHJvc1Byb2NDb2RpZmljYWRvcwIAAAALHhdfX1BhZ2VfVGFiM090cm9zUHJvY0V4dDLpAgABAAAA/////wEAAAAAAAAADAIAAAA+VGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAIUBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tUa0NEX0JMLlRraG9PdHJvc1Byb2NDb2RpZmljYWRvcywgVGtDRF9CTCwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAIlRrQ0RfQkwuVGtob090cm9zUHJvY0NvZGlmaWNhZG9zW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIFRrQ0RfQkwuVGtob090cm9zUHJvY0NvZGlmaWNhZG9zAgAAAAseEV9fUGFnZU1vdGl2b0FsdGFIMsUFAAEAAAD/////AQAAAAAAAAAMAgAAAD5Ua0NEX0JMLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAElRrQ0RfQkwuQ2xhc2VzQWx0YRUAAAANbXN0ckNsYXNlQWx0YQptc3RyRXhpdHVzD21zdHJJZENsYXNlQWx0YQltYm9sTnVldm8SbXN0ckF1ZGl0QW51bGFjaW9uEW1zdHJBdWRpdENyZWFjaW9uFW1zdHJBdWRpdE1vZGlmaWNhY2lvbhZtc3RySWRVc3VhcmlvQW51bGFjaW9uFW1zdHJJZFVzdWFyaW9DcmVhY2lvbhltc3RySWRVc3VhcmlvTW9kaWZpY2FjaW9uE21ib2xBY3R1YWxpemFyVGFibGEPVXNlVHJhbnNhY3Rpb25zEVRrVGFibGUrbWJvbE51ZXZvGlRrVGFibGUrbXN0ckF1ZGl0QW51bGFjaW9uGVRrVGFibGUrbXN0ckF1ZGl0Q3JlYWNpb24dVGtUYWJsZSttc3RyQXVkaXRNb2RpZmljYWNpb24eVGtUYWJsZSttc3RySWRVc3VhcmlvQW51bGFjaW9uHVRrVGFibGUrbXN0cklkVXN1YXJpb0NyZWFjaW9uIVRrVGFibGUrbXN0cklkVXN1YXJpb01vZGlmaWNhY2lvbhtUa1RhYmxlK21ib2xBY3R1YWxpemFyVGFibGEXVGtUYWJsZStVc2VUcmFuc2FjdGlvbnMBAQEAAQEBAQEBAAAAAQEBAQEBAAABAQEBAQECAAAABgMAAAAMT1JERU4gTUVESUNBBgQAAAABTgYFAAAAATEABgYAAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABAAkGAAAACQYAAAAJBgAAAAkGAAAACQYAAAAJBgAAAAABCxYCZg9kFgICBA9kFgICAQ9kFgICBQ9kFgYCAg8PFgQeDU9uQ2xpZW50Q2xpY2sFK2FicmlyUGFnaW5hSW5mb3JtZXMoJ0lBTFRBSCcpO3JldHVybiBmYWxzZTseB0VuYWJsZWRnZGQCBw9kFgZmD2QWAmYPZBYIAgEPDxYKHh50aWREaWFnbm9zdGljb3NSb3dTZWxlY2Npb25hZGFmHh90aWREaWFnbm9zdGljb3NUZXh0b0Rlc2NyaXBjaW9uBSJORVVNT05JQSBPUkdBTklTTU8gU0lOIEVTUEVDSUZJQ0FSHhZ0aWREaWFnbm9zdGljb3NUZXh0b0lkBQM0ODYeH3RpZERpYWdub3N0aWNvc1Jvd1NlbGVjY2lvbmFkYTIy+QoAAQAAAP////8BAAAAAAAAAAwCAAAATlN5c3RlbS5EYXRhLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUBAAAAFVN5c3RlbS5EYXRhLkRhdGFUYWJsZQMAAAAZRGF0YVRhYmxlLlJlbW90aW5nVmVyc2lvbglYbWxTY2hlbWELWG1sRGlmZkdyYW0DAQEOU3lzdGVtLlZlcnNpb24CAAAACQMAAAAGBAAAAOgFPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8eHM6c2NoZW1hIHhtbG5zPSIiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJUYWJsZSI+DQogICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJZERpYWdub3N0aWNvIiB0eXBlPSJ4czpzdHJpbmciIG1zZGF0YTp0YXJnZXROYW1lc3BhY2U9IiIgbWluT2NjdXJzPSIwIiAvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEZXNjcmlwY2lvbiIgdHlwZT0ieHM6c3RyaW5nIiBtc2RhdGE6dGFyZ2V0TmFtZXNwYWNlPSIiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgPC94czplbGVtZW50Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJ0bXBEYXRhU2V0IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIiBtc2RhdGE6TWFpbkRhdGFUYWJsZT0iVGFibGUiIG1zZGF0YTpVc2VDdXJyZW50TG9jYWxlPSJ0cnVlIj4NCiAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIC8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgPC94czplbGVtZW50Pg0KPC94czpzY2hlbWE+BgUAAADkAjxkaWZmZ3I6ZGlmZmdyYW0geG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiIHhtbG5zOmRpZmZncj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtZGlmZmdyYW0tdjEiPg0KICA8dG1wRGF0YVNldD4NCiAgICA8VGFibGUgZGlmZmdyOmlkPSJUYWJsZTEiIG1zZGF0YTpyb3dPcmRlcj0iMCI+DQogICAgICA8SWREaWFnbm9zdGljbz40ODY8L0lkRGlhZ25vc3RpY28+DQogICAgICA8RGVzY3JpcGNpb24+TkVVTU9OSUEgT1JHQU5JU01PIFNJTiBFU1BFQ0lGSUNBUjwvRGVzY3JpcGNpb24+DQogICAgPC9UYWJsZT4NCiAgPC90bXBEYXRhU2V0Pg0KPC9kaWZmZ3I6ZGlmZmdyYW0+BAMAAAAOU3lzdGVtLlZlcnNpb24EAAAABl9NYWpvcgZfTWlub3IGX0J1aWxkCV9SZXZpc2lvbgAAAAAICAgIAgAAAAAAAAD//////////wseHXRpZERpYWdub3N0aWNvc21vc3RyYXJMaXN0YWRvZ2QWBGYPDxYMHgVXaWR0aBsAAAAAAABJQAEAAAAeDEF1dG9Qb3N0QmFja2ceCENzc0NsYXNzZR4EVGV4dAUDNDg2HglGb3JlQ29sb3IKIx4EXyFTQgKGAmRkAgIPDxYMHw0bAAAAAAAAaUABAAAAHw5nHw9lHxAFIk5FVU1PTklBIE9SR0FOSVNNTyBTSU4gRVNQRUNJRklDQVIfEQojHxIChgJkZAIHDxBkDxYFZgIBAgICAwIEFgUQBQtEZXNjb25vY2lkbwUBRGcQBQZFeGVudG8FAUVnEAUbSW5kZXRlcm1pbmFkbyBDbMOtbmljYW1lbnRlBQFJZxAFAk5PBQFOZxAFAlNJBQFTZ2RkAgsPZBYCZg9kFgICAQ88KwARAgAPFgQeC18hRGF0YUJvdW5kZx4LXyFJdGVtQ291bnQCDmQBEBYBAgMWATwrAAUBABYCHgpIZWFkZXJUZXh0BQxEZXNjcmlwY2nDs24WAWYWAmYPZBYeAgEPD2QWBh4Lb25tb3VzZW92ZXIFKXRoaXMuc3R5bGUuY3Vyc29yPSdoYW5kJztIaWdobGlnaHQodGhpcyk7Hgpvbm1vdXNlb3V0BR9VbkhpZ2hsaWdodCh0aGlzKTtyZXR1cm4gZmFsc2U7HgdvbmNsaWNrBXBqYXZhc2NyaXB0Ol9fZG9Qb3N0QmFjaygnY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiRGlhZ25vc3RpY29zJEdWRGlhZ25vc3RpY29zU2VjdW5kYXJpb3MnLCdTZWxlY3QkMCcpFgYCAg8PFgIfEAUGMjUwLjAwZGQCAw8PFgIfEAU8RC5NLi4gU0lOIE1FTkNJT04gQ09NUEwuIFRJUE8gSUkgTyBOTyBFU1AuICwgTk8gSU5ESUNBREEgQ09NZGQCBA9kFgICAQ8QDxYIHxNnHgpEYXRhTWVtYmVyBRNNYXJjYWRvckRpYWdub3N0aWNvHw5nHgdWaXNpYmxlZxYCHxgFWWV2ZW50LnN0b3BQcm9wYWdhdGlvbiA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIDogKGV2ZW50LmNhbmNlbEJ1YmJsZT10cnVlKTtyZXR1cm4gZmFsc2U7EBUFC0Rlc2Nvbm9jaWRvBkV4ZW50bxtJbmRldGVybWluYWRvIENsw61uaWNhbWVudGUCTk8CU0kVBQFEAUUBSQFOAVMUKwMFZ2dnZ2cWAQIEZAICDw9kFgYfFgUpdGhpcy5zdHlsZS5jdXJzb3I9J2hhbmQnO0hpZ2hsaWdodCh0aGlzKTsfFwUfVW5IaWdobGlnaHQodGhpcyk7cmV0dXJuIGZhbHNlOx8YBXBqYXZhc2NyaXB0Ol9fZG9Qb3N0QmFjaygnY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiRGlhZ25vc3RpY29zJEdWRGlhZ25vc3RpY29zU2VjdW5kYXJpb3MnLCdTZWxlY3QkMScpFgYCAg8PFgIfEAUDNTg2ZGQCAw8PFgIfEAUQRkFMTE8gUkVOQUwgTkVPTWRkAgQPZBYCAgEPEA8WCB8TZx8ZBRNNYXJjYWRvckRpYWdub3N0aWNvHw5nHxpnFgIfGAVZZXZlbnQuc3RvcFByb3BhZ2F0aW9uID8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgOiAoZXZlbnQuY2FuY2VsQnViYmxlPXRydWUpO3JldHVybiBmYWxzZTsQFQULRGVzY29ub2NpZG8GRXhlbnRvG0luZGV0ZXJtaW5hZG8gQ2zDrW5pY2FtZW50ZQJOTwJTSRUFAUQBRQFJAU4BUxQrAwVnZ2dnZxYBAgNkAgMPD2QWBB8YBYoBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfR1ZEaWFnbm9zdGljb3NTZWN1bmRhcmlvcycsJ2QnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HgRuYW1lBQVmcmVlMhYGAgIPDxYCHxAFBiZuYnNwO2RkAgMPDxYCHxAFBiZuYnNwO2RkAgQPZBYCAgEPEA8WAh8TZ2RkFgBkAgQPD2QWBB8YBYoBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfR1ZEaWFnbm9zdGljb3NTZWN1bmRhcmlvcycsJ2QnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUzFgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCBQ8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTQWBgICDw8WAh8QBQYmbmJzcDtkZAIDDw8WAh8QBQYmbmJzcDtkZAIED2QWAgIBDxAPFgIfE2dkZBYAZAIGDw9kFgQfGAWKAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiRGlhZ25vc3RpY29zX0dWRGlhZ25vc3RpY29zU2VjdW5kYXJpb3MnLCdkJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQVmcmVlNRYGAgIPDxYCHxAFBiZuYnNwO2RkAgMPDxYCHxAFBiZuYnNwO2RkAgQPZBYCAgEPEA8WAh8TZ2RkFgBkAgcPD2QWBB8YBYoBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfR1ZEaWFnbm9zdGljb3NTZWN1bmRhcmlvcycsJ2QnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU2FgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCCA8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTcWBgICDw8WAh8QBQYmbmJzcDtkZAIDDw8WAh8QBQYmbmJzcDtkZAIED2QWAgIBDxAPFgIfE2dkZBYAZAIJDw9kFgQfGAWKAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiRGlhZ25vc3RpY29zX0dWRGlhZ25vc3RpY29zU2VjdW5kYXJpb3MnLCdkJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQVmcmVlOBYGAgIPDxYCHxAFBiZuYnNwO2RkAgMPDxYCHxAFBiZuYnNwO2RkAgQPZBYCAgEPEA8WAh8TZ2RkFgBkAgoPD2QWBB8YBYoBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfR1ZEaWFnbm9zdGljb3NTZWN1bmRhcmlvcycsJ2QnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU5FgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCCw8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEwFgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCDA8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTExFgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCDQ8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEyFgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCDg8PZBYEHxgFigFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19HVkRpYWdub3N0aWNvc1NlY3VuZGFyaW9zJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEzFgYCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA9kFgICAQ8QDxYCHxNnZGQWAGQCDw8PFgIfGmhkZAIXD2QWAmYPZBYCAgEPPCsAEQIADxYEHxNnHxQCBWQBEBYBAgMWATwrAAUBABYCHxUFDERlc2NyaXBjacOzbhYBZhYCZg9kFgwCAQ8PZBYEHxgFf0VkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiRGlhZ25vc3RpY29zX2d2Q2F1c2FFeHRlcm5hJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTAWBAICDw8WAh8QBQYmbmJzcDtkZAIDDw8WAh8QBQYmbmJzcDtkZAICDw9kFgQfGAV/RWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfZ3ZDYXVzYUV4dGVybmEnLCdkJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQVmcmVlMRYEAgIPDxYCHxAFBiZuYnNwO2RkAgMPDxYCHxAFBiZuYnNwO2RkAgMPD2QWBB8YBX9FZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYkRpYWdub3N0aWNvc19ndkNhdXNhRXh0ZXJuYScsJ2QnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUyFgQCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PFgIfEAUGJm5ic3A7ZGQCBA8PZBYEHxgFf0VkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiRGlhZ25vc3RpY29zX2d2Q2F1c2FFeHRlcm5hJywnZCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTMWBAICDw8WAh8QBQYmbmJzcDtkZAIDDw8WAh8QBQYmbmJzcDtkZAIFDw9kFgQfGAV/RWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJEaWFnbm9zdGljb3NfZ3ZDYXVzYUV4dGVybmEnLCdkJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQVmcmVlNBYEAgIPDxYCHxAFBiZuYnNwO2RkAgMPDxYCHxAFBiZuYnNwO2RkAgYPDxYCHxpoZGQCAQ8PFgIfB2hkFgJmD2QWCgIBD2QWAmYPZBYCAgEPPCsAEQIADxYEHxNnHxRmZAEQFgAWABYAZAIDD2QWAmYPZBYCAgEPDxYIHhx0aWRQcm9jUHJpbmNpcGFsX0NvbnN1bHRhU3FsZR4edGlkUHJvY1ByaW5jaXBhbG1vc3RyYXJMaXN0YWRvZx4XdGlkUHJvY1ByaW5jaXBhbFRleHRvSWRkHiB0aWRQcm9jUHJpbmNpcGFsVGV4dG9EZXNjcmlwY2lvbmRkZAIJD2QWAmYPZBYCAgEPPCsAEQIADxYEHxNnHxQCDmQBEBYBAgIWATwrAAUBABYCHxUFDERlc2NyaXBjacOzbhYBZhYCZg9kFh4CAQ8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUwFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCAg8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUxFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCAw8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUyFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCBA8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUzFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCBQ8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU0FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCBg8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU1FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCBw8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU2FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCCA8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU3FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCCQ8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU4FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCCg8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWU5FgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCCw8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBmZyZWUxMBYEAgEPDxYCHxAFBiZuYnNwO2RkAgIPDxYCHxAFBiZuYnNwO2RkAgwPD2QWBB8YBYgBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJQcm9jZWRpbWllbnRvc19ndk90cm9zUHJvY2VkaW1pZW50b3MnLCdwJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQZmcmVlMTEWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAINDw9kFgQfGAWIAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiUHJvY2VkaW1pZW50b3NfZ3ZPdHJvc1Byb2NlZGltaWVudG9zJywncCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEyFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCDg8PZBYEHxgFiAFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jZWRpbWllbnRvcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBmZyZWUxMxYEAgEPDxYCHxAFBiZuYnNwO2RkAgIPDxYCHxAFBiZuYnNwO2RkAg8PDxYCHxpoZGQCEw9kFgJmD2QWAgIBDw8WCB4jdGlkUHJvY1ByaW5jaXBhbEV4dGVybm9fQ29uc3VsdGFTcWxlHiV0aWRQcm9jUHJpbmNpcGFsRXh0ZXJub21vc3RyYXJMaXN0YWRvZx4edGlkUHJvY1ByaW5jaXBhbEV4dGVybm9UZXh0b0lkZB4ndGlkUHJvY1ByaW5jaXBhbEV4dGVybm9UZXh0b0Rlc2NyaXBjaW9uZGRkAhkPZBYCZg9kFgICAQ88KwARAgAPFgQfE2cfFAIEZAEQFgECAhYBPCsABQEAFgIfFQUMRGVzY3JpcGNpw7NuFgFmFgJmD2QWCgIBDw9kFgQfGAWGAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiUHJvY2VkaW1pZW50b3NfZ3ZPdHJvc1Byb2NFeHRlcm5vcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUwFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCAg8PZBYEHxgFhgFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX1RhYlByb2NlZGltaWVudG9zX2d2T3Ryb3NQcm9jRXh0ZXJub3MnLCdwJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQVmcmVlMRYEAgEPDxYCHxAFBiZuYnNwO2RkAgIPDxYCHxAFBiZuYnNwO2RkAgMPD2QWBB8YBYYBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF9UYWJQcm9jZWRpbWllbnRvc19ndk90cm9zUHJvY0V4dGVybm9zJywncCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTIWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIEDw9kFgQfGAWGAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfVGFiUHJvY2VkaW1pZW50b3NfZ3ZPdHJvc1Byb2NFeHRlcm5vcycsJ3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBWZyZWUzFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCBQ8PFgIfGmhkZAICD2QWAmYPZBYKAgEPZBYCZg9kFgICAQ88KwARAQEQFgAWABYAZAIDD2QWAmYPZBYCAgEPDxYGHiN0aWRPdHJvc1Byb2NQcmluY2lwYWxtb3N0cmFyTGlzdGFkb2ceHHRpZE90cm9zUHJvY1ByaW5jaXBhbFRleHRvSWRkHiV0aWRPdHJvc1Byb2NQcmluY2lwYWxUZXh0b0Rlc2NyaXBjaW9uZGRkAgkPZBYCZg9kFgICAQ88KwARAgAPFgQfE2cfFAIOZAEQFgECAhYBPCsABQEAFgIfFQUMRGVzY3JpcGNpw7NuFgFmFgJmD2QWHgIBDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTAWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAICDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTEWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIDDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTIWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIEDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTMWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIFDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTQWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIGDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTUWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIHDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTYWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIIDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTcWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIJDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTgWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIKDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTkWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAILDw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEwFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCDA8PZBYEHxgFhQFFZGl0Um93Q2VsbCh0aGlzLDEsJ0NvbnRlbnRQbGFjZUhvbGRlcjFfVGFiU29sX3RiT3Ryb3NQcm9jZWRpbWllbnRvc19ndk9QT3Ryb3NQcm9jJywnb3AnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkRGlhZycpLmZvY3VzKCk7HxsFBmZyZWUxMRYEAgEPDxYCHxAFBiZuYnNwO2RkAgIPDxYCHxAFBiZuYnNwO2RkAg0PD2QWBB8YBYUBRWRpdFJvd0NlbGwodGhpcywxLCdDb250ZW50UGxhY2VIb2xkZXIxX1RhYlNvbF90Yk90cm9zUHJvY2VkaW1pZW50b3NfZ3ZPUE90cm9zUHJvYycsJ29wJyk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZERpYWcnKS5mb2N1cygpOx8bBQZmcmVlMTIWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIODw9kFgQfGAWFAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2MnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUGZnJlZTEzFgQCAQ8PFgIfEAUGJm5ic3A7ZGQCAg8PFgIfEAUGJm5ic3A7ZGQCDw8PFgIfGmhkZAITD2QWAmYPZBYCAgEPDxYGHid0aWRQcm9jUHJpbmNpcGFsRXh0ZXJub09QbW9zdHJhckxpc3RhZG9nHiB0aWRQcm9jUHJpbmNpcGFsRXh0ZXJub09QVGV4dG9JZGQeKXRpZFByb2NQcmluY2lwYWxFeHRlcm5vT1BUZXh0b0Rlc2NyaXBjaW9uZGRkAhkPZBYCZg9kFgICAQ88KwARAgAPFgQfE2cfFAIEZAEQFgECAhYBPCsABQEAFgIfFQUMRGVzY3JpcGNpw7NuFgFmFgJmD2QWCgIBDw9kFgQfGAWIAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2NFeHQnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTAWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAICDw9kFgQfGAWIAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2NFeHQnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTEWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIDDw9kFgQfGAWIAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2NFeHQnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTIWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIEDw9kFgQfGAWIAUVkaXRSb3dDZWxsKHRoaXMsMSwnQ29udGVudFBsYWNlSG9sZGVyMV9UYWJTb2xfdGJPdHJvc1Byb2NlZGltaWVudG9zX2d2T1BPdHJvc1Byb2NFeHQnLCdvcCcpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGREaWFnJykuZm9jdXMoKTsfGwUFZnJlZTMWBAIBDw8WAh8QBQYmbmJzcDtkZAICDw8WAh8QBQYmbmJzcDtkZAIFDw8WAh8aaGRkAggPZBYCAgEPZBYCAgIPZBYCZg9kFgICAQ8WAh4JaW5uZXJodG1sBR1CJiMyNTA7c3F1ZWRhIGRlIERpYWdub3N0aWNvc2QYCgUgY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wPD2RmZAVKY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiRGlhZ25vc3RpY29zJEdWRGlhZ25vc3RpY29zU2VjdW5kYXJpb3MPPCsADAEIAgFkBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WHwUpY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRjaGtFcENvZGlmaWNhZG8FIGN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sBTpjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJEaWFnbm9zdGljb3MkYnRuQnVzY2FyBT5jdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJEaWFnbm9zdGljb3MkYnRuQWRkRGlhZ1NlYwVBY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiRGlhZ25vc3RpY29zJGJ0blJlbW92ZURpYWdTZWMFPWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYkRpYWdub3N0aWNvcyRidG5VcERpYWdTZWMFP2N0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYkRpYWdub3N0aWNvcyRidG5Eb3duRGlhZ1NlYwU/Y3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiRGlhZ25vc3RpY29zJGJ0bkFkZENhdXNhRXh0BUJjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJEaWFnbm9zdGljb3MkYnRuUmVtb3ZlQ2F1c2FFeHQFPmN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYkRpYWdub3N0aWNvcyRidG5VcENhdXNhRXh0BUBjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJEaWFnbm9zdGljb3MkYnRuRG93bkNhdXNhRXh0BUdjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJQcm9jZWRpbWllbnRvcyRidG5CdXNjUHJvY1ByaW5jaXBhbAVCY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiUHJvY2VkaW1pZW50b3MkYnRuQWRkT3Ryb3NQcm9jBUVjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJQcm9jZWRpbWllbnRvcyRidG5EZWxldGVPdHJvc1Byb2MFQWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYlByb2NlZGltaWVudG9zJGJ0blVwT3Ryb3NQcm9jBUNjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJQcm9jZWRpbWllbnRvcyRidG5Eb3duT3Ryb3NQcm9jBU5jdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJQcm9jZWRpbWllbnRvcyRidG5CdXNjUHJvY1ByaW5jaXBhbEV4dGVybm8FSmN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYlByb2NlZGltaWVudG9zJGJ0bkFkZE90cm9zUHJvY0V4dGVybm9zBU1jdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJQcm9jZWRpbWllbnRvcyRidG5EZWxldGVPdHJvc1Byb2NFeHRlcm5vcwVJY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiUHJvY2VkaW1pZW50b3MkYnRuVXBPdHJvc1Byb2NFeHRlcm5vcwVLY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiUHJvY2VkaW1pZW50b3MkYnRuRG93bk90cm9zUHJvY0V4dGVybm9zBVFjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCR0Yk90cm9zUHJvY2VkaW1pZW50b3MkYnRuQnVzY2FyT3Ryb3NQcm9jUGluY2lwYWwFSGN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJHRiT3Ryb3NQcm9jZWRpbWllbnRvcyRidG5BZGRPUE90cm9zUHJvYwVLY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkdGJPdHJvc1Byb2NlZGltaWVudG9zJGJ0bkRlbGV0ZU9QT3Ryb3NQcm9jBUdjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCR0Yk90cm9zUHJvY2VkaW1pZW50b3MkYnRuVXBPUE90cm9zUHJvYwVJY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkdGJPdHJvc1Byb2NlZGltaWVudG9zJGJ0bkRvd25PUE90cm9zUHJvYwVNY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkdGJPdHJvc1Byb2NlZGltaWVudG9zJGJ0bkJ1c2NhclByb2NQcmluRXh0T1AFS2N0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJHRiT3Ryb3NQcm9jZWRpbWllbnRvcyRidG5BZGRPUE90cm9zUHJvY0V4dAVNY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkdGJPdHJvc1Byb2NlZGltaWVudG9zJGJ0bkRlbGV0T1BPdHJvc1Byb2NFeHQFSmN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJHRiT3Ryb3NQcm9jZWRpbWllbnRvcyRidG5VcE9QT3Ryb3NQcm9jRXh0BUxjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCR0Yk90cm9zUHJvY2VkaW1pZW50b3MkYnRuRG93bk9QT3Ryb3NQcm9jRXh0BURjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCR0Yk90cm9zUHJvY2VkaW1pZW50b3MkZ3ZPUE90cm9zUHJvYw88KwAMAQgCAWQFRmN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkVGFiU29sJFRhYlByb2NlZGltaWVudG9zJGd2T3Ryb3NQcm9jRXh0ZXJub3MPPCsADAEIAgFkBT9jdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCRUYWJEaWFnbm9zdGljb3MkZ3ZDYXVzYUV4dGVybmEPPCsADAEIAgFkBURjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJFRhYlNvbCR0Yk90cm9zUHJvY2VkaW1pZW50b3MkZ3ZBc2lzdGVuY2lhcw9nZAVDY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiUHJvY2VkaW1pZW50b3MkZ3ZJbnRlcnZlbmNpb25lcw88KwAMAQhmZAVIY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkVGFiUHJvY2VkaW1pZW50b3MkZ3ZPdHJvc1Byb2NlZGltaWVudG9zDzwrAAwBCAIBZAVHY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRUYWJTb2wkdGJPdHJvc1Byb2NlZGltaWVudG9zJGd2T1BPdHJvc1Byb2NFeHQPPCsADAEIAgFkjhZ+5bHfEnwkkqqFstzzVOxppSE0vOeCSTjylzPMH/I=&__SCROLLPOSITIONX=0&__SCROLLPOSITIONY=0&__EVENTVALIDATION=/wEWcQK3ha/NDQKxjKufAQK91JroDQLhu7CGAQLmu7CGAQLau7CGAQLfu7CGAQLQu7CGAQKxjL/yCQKaisQHAsbl7ukMAsHl7ukMAv3l7ukMAvjl7ukMAvfl7ukMArGMg8UDArGMl7gKArGM24sMArGM7+4EArGMs/AOArGMx9QFArGMy/UEArGM36gDAsyNgeEOArOOgeEOAs6NgeEOAs2NgeEOAsnqhfUGAoiv5PUHArzjlroKApW4upsLAsiQiukNAqnYi4kGApWenL8MAo3Mu4UCAs/03K8MAqiPq7gBAqSD2JsIAqOD2JsIAp+D2JsIApqD2JsIApWD2JsIAsWK4u4CAv6f8cQMArqHzvQBAoyo2soJAp/oqYkGArm0wrcEAoXO6JECAoXO/PwKAoXOwEsChc7UtgkChc6YhQ8C1IOrhQ8CquLNqAgCtKKu/QECz8aa1QcCop7nsQMCysrNnAgC9+/5PALcpOnnDQKM27TkAwLdgI/6CQLC19e0CwLdx//pDQL5zfPHCALF8vbEDwLvmarhDgKXzZ7TDgLyhv+CDQLgsOCZDALhk83VAgLm3d+hDALOwtjWDQLixJiOBQK098PADwLI3IjfDAKcoaP8CgL18uLaAwKv9NKACgKQvdrrBAKQvc6GDAKQvfKxBgKQvebMDwKQvar/CQKQvZ6aAQKQvcKECwKQvbYgApC9uoEBApC9rtwGAu288JULApK/8JULAu+88JULAuy88JULApCmo+IPAqrK/psNAuzm9M8PAs/7nYABAtLo5JcEAujjm4QOAtrr2fsDAtnquvAGAsySxakBAof066kBAof0/8QJAof0w/MDAof0144KAtXJu/cIApvE8OUNAuXss+4GAsa+h6oHAvCSg8gNAuyS/fUKHiNBYdw2+n9EzyoEchaHWKW7/xzCt/0L2HhQUQm+j0g=&__ASYNCPOST=true&"; final String subst = "'\\1' => '\\2',\\r\\n"; final Pattern pattern = Pattern.compile(regex); final Matcher matcher = pattern.matcher(string); // The substituted value will be contained in the result variable final String result = matcher.replaceAll(subst); System.out.println("Substitution result: " + result); } }

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html