f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAwHgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHRleHRwcm90bzsKcGtncGF0aCBuZXQvdGV4dHByb3RvOwpwcmlvcml0eSA4OwppbXBvcnQgYnVmaW8gYnVmaW8gImJ1ZmlvIjsKaW1wb3J0IGJ5dGVzIGJ5dGVzICJieXRlcyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IGlvdXRpbCBpby9pb3V0aWwgImlvL2lvdXRpbCI7CmltcG9ydCBuZXQgbmV0ICJuZXQiOwppbXBvcnQgc3RyY29udiBzdHJjb252ICJzdHJjb252IjsKaW1wb3J0IHN0cmluZ3Mgc3RyaW5ncyAic3RyaW5ncyI7CmltcG9ydCBzeW5jIHN5bmMgInN5bmMiOwppbml0IHRleHRwcm90byBuZXRfdGV4dHByb3RvLi5pbXBvcnQgOCBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJhbmQgbWF0aF9yYW5kLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgYnVmaW8gYnVmaW8uLmltcG9ydCA1IG9zIG9zLi5pbXBvcnQgNSBmaWxlcGF0aCBwYXRoX2ZpbGVwYXRoLi5pbXBvcnQgNiBmbXQgZm10Li5pbXBvcnQgNiBuZXQgbmV0Li5pbXBvcnQgNiBpb3V0aWwgaW9faW91dGlsLi5pbXBvcnQgNzsKZnVuYyBDYW5vbmljYWxNSU1FSGVhZGVyS2V5IChzIDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CnR5cGUgPHR5cGUgMSAiQ29ubiIgPHR5cGUgMiBzdHJ1Y3QgeyA/IDx0eXBlIDMgIlJlYWRlciIgPHR5cGUgNCBzdHJ1Y3QgeyBSIDx0eXBlIDUgKjx0eXBlIDYgImJ1ZmlvLlJlYWRlciIgPHR5cGUgNyBzdHJ1Y3QgeyAuYnVmaW8uYnVmIDx0eXBlIDggW10gPHR5cGUgLTIwPj47IC5idWZpby5yZCA8dHlwZSA5ICJpby5SZWFkZXIiIDx0eXBlIDEwIGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgMTEgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyAuYnVmaW8uciA8dHlwZSAtMTE+OyAuYnVmaW8udyA8dHlwZSAtMTE+OyAuYnVmaW8uZXJyIDx0eXBlIC0xOT47IC5idWZpby5sYXN0Qnl0ZSA8dHlwZSAtMTE+OyAuYnVmaW8ubGFzdFJ1bmVTaXplIDx0eXBlIC0xMT47IH0+CiBmdW5jIChiIDx0eXBlIDEyICo8dHlwZSA2Pj4pIFVucmVhZEJ5dGUgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgMTI+KSBSZWFkU3RyaW5nIChkZWxpbSA8dHlwZSAtMjA+KSAobGluZSA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgUmVhZEJ5dGUgKCkgKGMgPHR5cGUgLTIwPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAxMj4pIFdyaXRlVG8gKHcgPHR5cGUgMTMgImlvLldyaXRlciIgPHR5cGUgMTQgaW50ZXJmYWNlIHsgV3JpdGUgKHAgPHR5cGUgMTUgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgMTI+KSBSZWFkQnl0ZXMgKGRlbGltIDx0eXBlIC0yMD4pIChsaW5lIDx0eXBlIDE2IFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgLmJ1ZmlvLndyaXRlQnVmICh3IDx0eXBlIDEzPikgKD8gPHR5cGUgLTQ+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAxMj4pIFJlYWRMaW5lICgpIChsaW5lIDx0eXBlIDE3IFtdIDx0eXBlIC0yMD4+LCBpc1ByZWZpeCA8dHlwZSAtMTU+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgUmVhZFJ1bmUgKCkgKHIgPHR5cGUgLTIxPiwgc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgUmVhZFNsaWNlIChkZWxpbSA8dHlwZSAtMjA+KSAobGluZSA8dHlwZSAxOCBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAxMj4pIFJlc2V0IChyIDx0eXBlIDk+KTsKIGZ1bmMgKGIgPHR5cGUgMTI+KSBSZWFkIChwIDx0eXBlIDE5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgLmJ1ZmlvLmZpbGwgKCk7CiBmdW5jIChiIDx0eXBlIDEyPikgVW5yZWFkUnVuZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSAxMj4pIEJ1ZmZlcmVkICgpIDx0eXBlIC0xMT47CiBmdW5jIChiIDx0eXBlIDEyPikgLmJ1ZmlvLnJlc2V0IChidWYgPHR5cGUgMjAgW10gPHR5cGUgLTIwPj4sIHIgPHR5cGUgOT4pOwogZnVuYyAoYiA8dHlwZSAxMj4pIFBlZWsgKG4gPHR5cGUgLTExPikgKD8gPHR5cGUgMjEgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDEyPikgLmJ1ZmlvLnJlYWRFcnIgKCkgPHR5cGUgLTE5PjsKPj47IC5uZXQvdGV4dHByb3RvLmRvdCA8dHlwZSAyMiAqPHR5cGUgMjMgIi5uZXQvdGV4dHByb3RvLmRvdFJlYWRlciIgPHR5cGUgMjQgc3RydWN0IHsgLm5ldC90ZXh0cHJvdG8uciA8dHlwZSAyNSAqPHR5cGUgMz4+OyAubmV0L3RleHRwcm90by5zdGF0ZSA8dHlwZSAtMTE+OyB9PgogZnVuYyAoZCA8dHlwZSAyNiAqPHR5cGUgMjM+PikgUmVhZCAoYiA8dHlwZSAyNyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwo+PjsgLm5ldC90ZXh0cHJvdG8uYnVmIDx0eXBlIDI4IFtdIDx0eXBlIC0yMD4+OyB9PgogZnVuYyAociA8dHlwZSAyNT4pIFJlYWRMaW5lICgpICg/IDx0eXBlIC0xNj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDI1PikgUmVhZExpbmVCeXRlcyAoKSAoPyA8dHlwZSAyOSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMjU+KSAubmV0L3RleHRwcm90by5yZWFkTGluZVNsaWNlICgpICg/IDx0eXBlIDMwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAyNT4pIFJlYWRDb250aW51ZWRMaW5lICgpICg/IDx0eXBlIC0xNj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDI1PikgUmVhZENvbnRpbnVlZExpbmVCeXRlcyAoKSAoPyA8dHlwZSAzMSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMjU+KSAubmV0L3RleHRwcm90by5yZWFkQ29udGludWVkTGluZVNsaWNlICgpICg/IDx0eXBlIDMyIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAyNT4pIC5uZXQvdGV4dHByb3RvLnNraXBTcGFjZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSAyNT4pIC5uZXQvdGV4dHByb3RvLnJlYWRDb2RlTGluZSAoZXhwZWN0Q29kZSA8dHlwZSAtMTE+KSAoY29kZSA8dHlwZSAtMTE+LCBjb250aW51ZWQgPHR5cGUgLTE1PiwgbWVzc2FnZSA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDI1PikgUmVhZENvZGVMaW5lIChleHBlY3RDb2RlIDx0eXBlIC0xMT4pIChjb2RlIDx0eXBlIC0xMT4sIG1lc3NhZ2UgPHR5cGUgLTE2PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAyNT4pIFJlYWRSZXNwb25zZSAoZXhwZWN0Q29kZSA8dHlwZSAtMTE+KSAoY29kZSA8dHlwZSAtMTE+LCBtZXNzYWdlIDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMjU+KSBEb3RSZWFkZXIgKCkgPHR5cGUgOT47CiBmdW5jIChyIDx0eXBlIDI1PikgLm5ldC90ZXh0cHJvdG8uY2xvc2VEb3QgKCk7CiBmdW5jIChyIDx0eXBlIDI1PikgUmVhZERvdEJ5dGVzICgpICg/IDx0eXBlIDMzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAyNT4pIFJlYWREb3RMaW5lcyAoKSAoPyA8dHlwZSAzNCBbXSA8dHlwZSAtMTY+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMjU+KSBSZWFkTUlNRUhlYWRlciAoKSAoPyA8dHlwZSAzNSAiTUlNRUhlYWRlciIgPHR5cGUgMzYgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAzNyBbXSA8dHlwZSAtMTY+Pj4KIGZ1bmMgKGggPHR5cGUgMzU+KSBBZGQgKGtleSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGggPHR5cGUgMzU+KSBTZXQgKGtleSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGggPHR5cGUgMzU+KSBHZXQgKGtleSA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwogZnVuYyAoaCA8dHlwZSAzNT4pIERlbCAoa2V5IDx0eXBlIC0xNj4pOwo+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAyNT4pIC5uZXQvdGV4dHByb3RvLnVwY29taW5nSGVhZGVyTmV3bGluZXMgKCkgKG4gPHR5cGUgLTExPik7Cj47ID8gPHR5cGUgMzggIldyaXRlciIgPHR5cGUgMzkgc3RydWN0IHsgVyA8dHlwZSA0MCAqPHR5cGUgNDEgImJ1ZmlvLldyaXRlciIgPHR5cGUgNDIgc3RydWN0IHsgLmJ1ZmlvLmVyciA8dHlwZSAtMTk+OyAuYnVmaW8uYnVmIDx0eXBlIDQzIFtdIDx0eXBlIC0yMD4+OyAuYnVmaW8ubiA8dHlwZSAtMTE+OyAuYnVmaW8ud3IgPHR5cGUgMTM+OyB9PgogZnVuYyAoYiA8dHlwZSA0NCAqPHR5cGUgNDE+PikgUmVhZEZyb20gKHIgPHR5cGUgOT4pIChuIDx0eXBlIC00PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA0ND4pIFdyaXRlU3RyaW5nIChzIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDQ0PikgV3JpdGVSdW5lIChyIDx0eXBlIC0yMT4pIChzaXplIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNDQ+KSBXcml0ZUJ5dGUgKGMgPHR5cGUgLTIwPikgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgNDQ+KSBXcml0ZSAocCA8dHlwZSA0NSBbXSA8dHlwZSAtMjA+PikgKG5uIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNDQ+KSBGbHVzaCAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSA0ND4pIEF2YWlsYWJsZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAoYiA8dHlwZSA0ND4pIC5idWZpby5mbHVzaCAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSA0ND4pIEJ1ZmZlcmVkICgpIDx0eXBlIC0xMT47CiBmdW5jIChiIDx0eXBlIDQ0PikgUmVzZXQgKHcgPHR5cGUgMTM+KTsKPj47IC5uZXQvdGV4dHByb3RvLmRvdCA8dHlwZSA0NiAqPHR5cGUgNDcgIi5uZXQvdGV4dHByb3RvLmRvdFdyaXRlciIgPHR5cGUgNDggc3RydWN0IHsgLm5ldC90ZXh0cHJvdG8udyA8dHlwZSA0OSAqPHR5cGUgMzg+PjsgLm5ldC90ZXh0cHJvdG8uc3RhdGUgPHR5cGUgLTExPjsgfT4KIGZ1bmMgKGQgPHR5cGUgNTAgKjx0eXBlIDQ3Pj4pIFdyaXRlIChiIDx0eXBlIDUxIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChkIDx0eXBlIDUwPikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKPj47IH0+CiBmdW5jICh3IDx0eXBlIDQ5PikgUHJpbnRmTGluZSAoZm9ybWF0IDx0eXBlIC0xNj4sIGFyZ3MgLi4uPHR5cGUgNTIgaW50ZXJmYWNlIHsgfT4pIDx0eXBlIC0xOT47CiBmdW5jICh3IDx0eXBlIDQ5PikgRG90V3JpdGVyICgpIDx0eXBlIDUzICJpby5Xcml0ZUNsb3NlciIgPHR5cGUgNTQgaW50ZXJmYWNlIHsgPyA8dHlwZSAxMz47ID8gPHR5cGUgNTUgImlvLkNsb3NlciIgPHR5cGUgNTYgaW50ZXJmYWNlIHsgQ2xvc2UgKCkgPHR5cGUgLTE5PjsgfT4+OyB9Pj47CiBmdW5jICh3IDx0eXBlIDQ5PikgLm5ldC90ZXh0cHJvdG8uY2xvc2VEb3QgKCk7Cj47ID8gPHR5cGUgNTcgIlBpcGVsaW5lIiA8dHlwZSA1OCBzdHJ1Y3QgeyAubmV0L3RleHRwcm90by5tdSA8dHlwZSA1OSAic3luYy5NdXRleCIgPHR5cGUgNjAgc3RydWN0IHsgLnN5bmMuc3RhdGUgPHR5cGUgLTM+OyAuc3luYy5zZW1hIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG0gPHR5cGUgNjEgKjx0eXBlIDU5Pj4pIFVubG9jayAoKTsKIGZ1bmMgKG0gPHR5cGUgNjE+KSBMb2NrICgpOwo+OyAubmV0L3RleHRwcm90by5pZCA8dHlwZSAtMTI+OyAubmV0L3RleHRwcm90by5yZXF1ZXN0IDx0eXBlIDYyICIubmV0L3RleHRwcm90by5zZXF1ZW5jZXIiIDx0eXBlIDYzIHN0cnVjdCB7IC5uZXQvdGV4dHByb3RvLm11IDx0eXBlIDU5PjsgLm5ldC90ZXh0cHJvdG8uaWQgPHR5cGUgLTEyPjsgLm5ldC90ZXh0cHJvdG8ud2FpdCA8dHlwZSA2NCBtYXAgWzx0eXBlIC0xMj5dIDx0eXBlIDY1IGNoYW4gPHR5cGUgLTEyPj4+OyB9PgogZnVuYyAocyA8dHlwZSA2NiAqPHR5cGUgNjI+PikgU3RhcnQgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocyA8dHlwZSA2Nj4pIEVuZCAoaWQgPHR5cGUgLTEyPik7Cj47IC5uZXQvdGV4dHByb3RvLnJlc3BvbnNlIDx0eXBlIDYyPjsgfT4KIGZ1bmMgKHAgPHR5cGUgNjcgKjx0eXBlIDU3Pj4pIE5leHQgKCkgPHR5cGUgLTEyPjsKIGZ1bmMgKHAgPHR5cGUgNjc+KSBTdGFydFJlcXVlc3QgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocCA8dHlwZSA2Nz4pIEVuZFJlcXVlc3QgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocCA8dHlwZSA2Nz4pIFN0YXJ0UmVzcG9uc2UgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocCA8dHlwZSA2Nz4pIEVuZFJlc3BvbnNlIChpZCA8dHlwZSAtMTI+KTsKPjsgLm5ldC90ZXh0cHJvdG8uY29ubiA8dHlwZSA2OCAiaW8uUmVhZFdyaXRlQ2xvc2VyIiA8dHlwZSA2OSBpbnRlcmZhY2UgeyA/IDx0eXBlIDk+OyA/IDx0eXBlIDEzPjsgPyA8dHlwZSA1NT47IH0+PjsgfT4KIGZ1bmMgKGMgPHR5cGUgNzAgKjx0eXBlIDE+PikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGMgPHR5cGUgNzA+KSBDbWQgKGZvcm1hdCA8dHlwZSAtMTY+LCBhcmdzIC4uLjx0eXBlIDcxIGludGVyZmFjZSB7IH0+KSAoaWQgPHR5cGUgLTEyPiwgZXJyIDx0eXBlIC0xOT4pOwo+OwpmdW5jIERpYWwgKG5ldHdvcmsgPHR5cGUgLTE2PiwgYWRkciA8dHlwZSAtMTY+KSAoPyA8dHlwZSA3MD4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNzIgIkVycm9yIiA8dHlwZSA3MyBzdHJ1Y3QgeyBDb2RlIDx0eXBlIC0xMT47IE1zZyA8dHlwZSAtMTY+OyB9PgogZnVuYyAoZSA8dHlwZSA3NCAqPHR5cGUgNzI+PikgRXJyb3IgKCkgPHR5cGUgLTE2PjsKPjsKdHlwZSA8dHlwZSAzNT47CmZ1bmMgTmV3Q29ubiAoY29ubiA8dHlwZSA2OD4pIDx0eXBlIDcwPjsKZnVuYyBOZXdSZWFkZXIgKHIgPHR5cGUgNT4pIDx0eXBlIDI1PjsKZnVuYyBOZXdXcml0ZXIgKHcgPHR5cGUgNDA+KSA8dHlwZSA0OT47CnR5cGUgPHR5cGUgNTc+Owp0eXBlIDx0eXBlIDc1ICJQcm90b2NvbEVycm9yIiA8dHlwZSAtMTY+CiBmdW5jIChwIDx0eXBlIDc1PikgRXJyb3IgKCkgPHR5cGUgLTE2PjsKPjsKdHlwZSA8dHlwZSAzPjsKZnVuYyBUcmltQnl0ZXMgKGIgPHR5cGUgNzYgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDc3IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRyaW1TdHJpbmcgKHMgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKdHlwZSA8dHlwZSAzOD47CmNoZWNrc3VtIENBMDVDMjM1RDMwODhFMUE3NzdBMTVGNUIwMUJDOEREMDAwQzU0QUM7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAsh0AAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAA5h0AACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAweAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAsHgAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=