UNPKG

@nubit/modular-indexer-light-sdk

Version:

WebAssembly-based Nubit Modular Indexer (Light) SDK for Bitcoin meta-protocol verification

1 lines 113 MB
const G = "KCgpID0+IHsKICBjb25zdCBRID0gKCkgPT4gewogICAgY29uc3QgdyA9IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIik7CiAgICByZXR1cm4gdy5jb2RlID0gIkVOT1NZUyIsIHc7CiAgfTsKICBpZiAoIWdsb2JhbFRoaXMuZnMpIHsKICAgIGxldCB3ID0gIiI7CiAgICBnbG9iYWxUaGlzLmZzID0gewogICAgICBjb25zdGFudHM6IHsgT19XUk9OTFk6IC0xLCBPX1JEV1I6IC0xLCBPX0NSRUFUOiAtMSwgT19UUlVOQzogLTEsIE9fQVBQRU5EOiAtMSwgT19FWENMOiAtMSB9LAogICAgICAvLyB1bnVzZWQKICAgICAgd3JpdGVTeW5jKEMsIEkpIHsKICAgICAgICB3ICs9IEQuZGVjb2RlKEkpOwogICAgICAgIGNvbnN0IGcgPSB3Lmxhc3RJbmRleE9mKGAKYCk7CiAgICAgICAgcmV0dXJuIGcgIT0gLTEgJiYgKGNvbnNvbGUubG9nKHcuc3Vic3RyaW5nKDAsIGcpKSwgdyA9IHcuc3Vic3RyaW5nKGcgKyAxKSksIEkubGVuZ3RoOwogICAgICB9LAogICAgICB3cml0ZShDLCBJLCBnLCBjLCBVLCB5KSB7CiAgICAgICAgaWYgKGcgIT09IDAgfHwgYyAhPT0gSS5sZW5ndGggfHwgVSAhPT0gbnVsbCkgewogICAgICAgICAgeShRKCkpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBHID0gdGhpcy53cml0ZVN5bmMoQywgSSk7CiAgICAgICAgeShudWxsLCBHKTsKICAgICAgfSwKICAgICAgY2htb2QoQywgSSwgZykgewogICAgICAgIGcoUSgpKTsKICAgICAgfSwKICAgICAgY2hvd24oQywgSSwgZywgYykgewogICAgICAgIGMoUSgpKTsKICAgICAgfSwKICAgICAgY2xvc2UoQywgSSkgewogICAgICAgIEkoUSgpKTsKICAgICAgfSwKICAgICAgZmNobW9kKEMsIEksIGcpIHsKICAgICAgICBnKFEoKSk7CiAgICAgIH0sCiAgICAgIGZjaG93bihDLCBJLCBnLCBjKSB7CiAgICAgICAgYyhRKCkpOwogICAgICB9LAogICAgICBmc3RhdChDLCBJKSB7CiAgICAgICAgSShRKCkpOwogICAgICB9LAogICAgICBmc3luYyhDLCBJKSB7CiAgICAgICAgSShudWxsKTsKICAgICAgfSwKICAgICAgZnRydW5jYXRlKEMsIEksIGcpIHsKICAgICAgICBnKFEoKSk7CiAgICAgIH0sCiAgICAgIGxjaG93bihDLCBJLCBnLCBjKSB7CiAgICAgICAgYyhRKCkpOwogICAgICB9LAogICAgICBsaW5rKEMsIEksIGcpIHsKICAgICAgICBnKFEoKSk7CiAgICAgIH0sCiAgICAgIGxzdGF0KEMsIEkpIHsKICAgICAgICBJKFEoKSk7CiAgICAgIH0sCiAgICAgIG1rZGlyKEMsIEksIGcpIHsKICAgICAgICBnKFEoKSk7CiAgICAgIH0sCiAgICAgIG9wZW4oQywgSSwgZywgYykgewogICAgICAgIGMoUSgpKTsKICAgICAgfSwKICAgICAgcmVhZChDLCBJLCBnLCBjLCBVLCB5KSB7CiAgICAgICAgeShRKCkpOwogICAgICB9LAogICAgICByZWFkZGlyKEMsIEkpIHsKICAgICAgICBJKFEoKSk7CiAgICAgIH0sCiAgICAgIHJlYWRsaW5rKEMsIEkpIHsKICAgICAgICBJKFEoKSk7CiAgICAgIH0sCiAgICAgIHJlbmFtZShDLCBJLCBnKSB7CiAgICAgICAgZyhRKCkpOwogICAgICB9LAogICAgICBybWRpcihDLCBJKSB7CiAgICAgICAgSShRKCkpOwogICAgICB9LAogICAgICBzdGF0KEMsIEkpIHsKICAgICAgICBJKFEoKSk7CiAgICAgIH0sCiAgICAgIHN5bWxpbmsoQywgSSwgZykgewogICAgICAgIGcoUSgpKTsKICAgICAgfSwKICAgICAgdHJ1bmNhdGUoQywgSSwgZykgewogICAgICAgIGcoUSgpKTsKICAgICAgfSwKICAgICAgdW5saW5rKEMsIEkpIHsKICAgICAgICBJKFEoKSk7CiAgICAgIH0sCiAgICAgIHV0aW1lcyhDLCBJLCBnLCBjKSB7CiAgICAgICAgYyhRKCkpOwogICAgICB9CiAgICB9OwogIH0KICBpZiAoZ2xvYmFsVGhpcy5wcm9jZXNzIHx8IChnbG9iYWxUaGlzLnByb2Nlc3MgPSB7CiAgICBnZXR1aWQoKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0sCiAgICBnZXRnaWQoKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0sCiAgICBnZXRldWlkKCkgewogICAgICByZXR1cm4gLTE7CiAgICB9LAogICAgZ2V0ZWdpZCgpIHsKICAgICAgcmV0dXJuIC0xOwogICAgfSwKICAgIGdldGdyb3VwcygpIHsKICAgICAgdGhyb3cgUSgpOwogICAgfSwKICAgIHBpZDogLTEsCiAgICBwcGlkOiAtMSwKICAgIHVtYXNrKCkgewogICAgICB0aHJvdyBRKCk7CiAgICB9LAogICAgY3dkKCkgewogICAgICB0aHJvdyBRKCk7CiAgICB9LAogICAgY2hkaXIoKSB7CiAgICAgIHRocm93IFEoKTsKICAgIH0KICB9KSwgIWdsb2JhbFRoaXMuY3J5cHRvKQogICAgdGhyb3cgbmV3IEVycm9yKCJnbG9iYWxUaGlzLmNyeXB0byBpcyBub3QgYXZhaWxhYmxlLCBwb2x5ZmlsbCByZXF1aXJlZCAoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyBvbmx5KSIpOwogIGlmICghZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZSkKICAgIHRocm93IG5ldyBFcnJvcigiZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZSBpcyBub3QgYXZhaWxhYmxlLCBwb2x5ZmlsbCByZXF1aXJlZCAocGVyZm9ybWFuY2Uubm93IG9ubHkpIik7CiAgaWYgKCFnbG9iYWxUaGlzLlRleHRFbmNvZGVyKQogICAgdGhyb3cgbmV3IEVycm9yKCJnbG9iYWxUaGlzLlRleHRFbmNvZGVyIGlzIG5vdCBhdmFpbGFibGUsIHBvbHlmaWxsIHJlcXVpcmVkIik7CiAgaWYgKCFnbG9iYWxUaGlzLlRleHREZWNvZGVyKQogICAgdGhyb3cgbmV3IEVycm9yKCJnbG9iYWxUaGlzLlRleHREZWNvZGVyIGlzIG5vdCBhdmFpbGFibGUsIHBvbHlmaWxsIHJlcXVpcmVkIik7CiAgY29uc3QgRSA9IG5ldyBUZXh0RW5jb2RlcigidXRmLTgiKSwgRCA9IG5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTsKICBnbG9iYWxUaGlzLkdvID0gY2xhc3MgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgIHRoaXMuYXJndiA9IFsianMiXSwgdGhpcy5lbnYgPSB7fSwgdGhpcy5leGl0ID0gKEEpID0+IHsKICAgICAgICBBICE9PSAwICYmIGNvbnNvbGUud2FybigiZXhpdCBjb2RlOiIsIEEpOwogICAgICB9LCB0aGlzLl9leGl0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChBKSA9PiB7CiAgICAgICAgdGhpcy5fcmVzb2x2ZUV4aXRQcm9taXNlID0gQTsKICAgICAgfSksIHRoaXMuX3BlbmRpbmdFdmVudCA9IG51bGwsIHRoaXMuX3NjaGVkdWxlZFRpbWVvdXRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSwgdGhpcy5fbmV4dENhbGxiYWNrVGltZW91dElEID0gMTsKICAgICAgY29uc3QgdyA9IChBLCBCKSA9PiB7CiAgICAgICAgdGhpcy5tZW0uc2V0VWludDMyKEEgKyAwLCBCLCAhMCksIHRoaXMubWVtLnNldFVpbnQzMihBICsgNCwgTWF0aC5mbG9vcihCIC8gNDI5NDk2NzI5NiksICEwKTsKICAgICAgfSwgQyA9IChBKSA9PiB7CiAgICAgICAgY29uc3QgQiA9IHRoaXMubWVtLmdldFVpbnQzMihBICsgMCwgITApLCBNID0gdGhpcy5tZW0uZ2V0SW50MzIoQSArIDQsICEwKTsKICAgICAgICByZXR1cm4gQiArIE0gKiA0Mjk0OTY3Mjk2OwogICAgICB9LCBJID0gKEEpID0+IHsKICAgICAgICBjb25zdCBCID0gdGhpcy5tZW0uZ2V0RmxvYXQ2NChBLCAhMCk7CiAgICAgICAgaWYgKEIgPT09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKCFpc05hTihCKSkKICAgICAgICAgIHJldHVybiBCOwogICAgICAgIGNvbnN0IE0gPSB0aGlzLm1lbS5nZXRVaW50MzIoQSwgITApOwogICAgICAgIHJldHVybiB0aGlzLl92YWx1ZXNbTV07CiAgICAgIH0sIGcgPSAoQSwgQikgPT4gewogICAgICAgIGlmICh0eXBlb2YgQiA9PSAibnVtYmVyIiAmJiBCICE9PSAwKSB7CiAgICAgICAgICBpZiAoaXNOYU4oQikpIHsKICAgICAgICAgICAgdGhpcy5tZW0uc2V0VWludDMyKEEgKyA0LCAyMTQ2OTU5MzYwLCAhMCksIHRoaXMubWVtLnNldFVpbnQzMihBLCAwLCAhMCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMubWVtLnNldEZsb2F0NjQoQSwgQiwgITApOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoQiA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aGlzLm1lbS5zZXRGbG9hdDY0KEEsIDAsICEwKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbGV0IEsgPSB0aGlzLl9pZHMuZ2V0KEIpOwogICAgICAgIEsgPT09IHZvaWQgMCAmJiAoSyA9IHRoaXMuX2lkUG9vbC5wb3AoKSwgSyA9PT0gdm9pZCAwICYmIChLID0gdGhpcy5fdmFsdWVzLmxlbmd0aCksIHRoaXMuX3ZhbHVlc1tLXSA9IEIsIHRoaXMuX2dvUmVmQ291bnRzW0tdID0gMCwgdGhpcy5faWRzLnNldChCLCBLKSksIHRoaXMuX2dvUmVmQ291bnRzW0tdKys7CiAgICAgICAgbGV0IE4gPSAwOwogICAgICAgIHN3aXRjaCAodHlwZW9mIEIpIHsKICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgIEIgIT09IG51bGwgJiYgKE4gPSAxKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBOID0gMjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICBOID0gMzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIE4gPSA0OwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdGhpcy5tZW0uc2V0VWludDMyKEEgKyA0LCAyMTQ2OTU5MzYwIHwgTiwgITApLCB0aGlzLm1lbS5zZXRVaW50MzIoQSwgSywgITApOwogICAgICB9LCBjID0gKEEpID0+IHsKICAgICAgICBjb25zdCBCID0gQyhBICsgMCksIE0gPSBDKEEgKyA4KTsKICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy5faW5zdC5leHBvcnRzLm1lbS5idWZmZXIsIEIsIE0pOwogICAgICB9LCBVID0gKEEpID0+IHsKICAgICAgICBjb25zdCBCID0gQyhBICsgMCksIE0gPSBDKEEgKyA4KSwgSyA9IG5ldyBBcnJheShNKTsKICAgICAgICBmb3IgKGxldCBOID0gMDsgTiA8IE07IE4rKykKICAgICAgICAgIEtbTl0gPSBJKEIgKyBOICogOCk7CiAgICAgICAgcmV0dXJuIEs7CiAgICAgIH0sIHkgPSAoQSkgPT4gewogICAgICAgIGNvbnN0IEIgPSBDKEEgKyAwKSwgTSA9IEMoQSArIDgpOwogICAgICAgIHJldHVybiBELmRlY29kZShuZXcgRGF0YVZpZXcodGhpcy5faW5zdC5leHBvcnRzLm1lbS5idWZmZXIsIEIsIE0pKTsKICAgICAgfSwgRyA9IERhdGUubm93KCkgLSBwZXJmb3JtYW5jZS5ub3coKTsKICAgICAgdGhpcy5pbXBvcnRPYmplY3QgPSB7CiAgICAgICAgX2dvdGVzdDogewogICAgICAgICAgYWRkOiAoQSwgQikgPT4gQSArIEIKICAgICAgICB9LAogICAgICAgIGdvanM6IHsKICAgICAgICAgIC8vIEdvJ3MgU1AgZG9lcyBub3QgY2hhbmdlIGFzIGxvbmcgYXMgbm8gR28gY29kZSBpcyBydW5uaW5nLiBTb21lIG9wZXJhdGlvbnMgKGUuZy4gY2FsbHMsIGdldHRlcnMgYW5kIHNldHRlcnMpCiAgICAgICAgICAvLyBtYXkgc3luY2hyb25vdXNseSB0cmlnZ2VyIGEgR28gZXZlbnQgaGFuZGxlci4gVGhpcyBtYWtlcyBHbyBjb2RlIGdldCBleGVjdXRlZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBpbXBvcnRlZAogICAgICAgICAgLy8gZnVuY3Rpb24uIEEgZ29yb3V0aW5lIGNhbiBzd2l0Y2ggdG8gYSBuZXcgc3RhY2sgaWYgdGhlIGN1cnJlbnQgc3RhY2sgaXMgdG9vIHNtYWxsIChzZWUgbW9yZXN0YWNrIGZ1bmN0aW9uKS4KICAgICAgICAgIC8vIFRoaXMgY2hhbmdlcyB0aGUgU1AsIHRodXMgd2UgaGF2ZSB0byB1cGRhdGUgdGhlIFNQIHVzZWQgYnkgdGhlIGltcG9ydGVkIGZ1bmN0aW9uLgogICAgICAgICAgLy8gZnVuYyB3YXNtRXhpdChjb2RlIGludDMyKQogICAgICAgICAgInJ1bnRpbWUud2FzbUV4aXQiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgY29uc3QgQiA9IHRoaXMubWVtLmdldEludDMyKEEgKyA4LCAhMCk7CiAgICAgICAgICAgIHRoaXMuZXhpdGVkID0gITAsIGRlbGV0ZSB0aGlzLl9pbnN0LCBkZWxldGUgdGhpcy5fdmFsdWVzLCBkZWxldGUgdGhpcy5fZ29SZWZDb3VudHMsIGRlbGV0ZSB0aGlzLl9pZHMsIGRlbGV0ZSB0aGlzLl9pZFBvb2wsIHRoaXMuZXhpdChCKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIHdhc21Xcml0ZShmZCB1aW50cHRyLCBwIHVuc2FmZS5Qb2ludGVyLCBuIGludDMyKQogICAgICAgICAgInJ1bnRpbWUud2FzbVdyaXRlIjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDA7CiAgICAgICAgICAgIGNvbnN0IEIgPSBDKEEgKyA4KSwgTSA9IEMoQSArIDE2KSwgSyA9IHRoaXMubWVtLmdldEludDMyKEEgKyAyNCwgITApOwogICAgICAgICAgICBmcy53cml0ZVN5bmMoQiwgbmV3IFVpbnQ4QXJyYXkodGhpcy5faW5zdC5leHBvcnRzLm1lbS5idWZmZXIsIE0sIEspKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIHJlc2V0TWVtb3J5RGF0YVZpZXcoKQogICAgICAgICAgInJ1bnRpbWUucmVzZXRNZW1vcnlEYXRhVmlldyI6IChBKSA9PiB7CiAgICAgICAgICAgIHRoaXMubWVtID0gbmV3IERhdGFWaWV3KHRoaXMuX2luc3QuZXhwb3J0cy5tZW0uYnVmZmVyKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIG5hbm90aW1lMSgpIGludDY0CiAgICAgICAgICAicnVudGltZS5uYW5vdGltZTEiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMCwgdyhBICsgOCwgKEcgKyBwZXJmb3JtYW5jZS5ub3coKSkgKiAxZTYpOwogICAgICAgICAgfSwKICAgICAgICAgIC8vIGZ1bmMgd2FsbHRpbWUoKSAoc2VjIGludDY0LCBuc2VjIGludDMyKQogICAgICAgICAgInJ1bnRpbWUud2FsbHRpbWUiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgY29uc3QgQiA9ICgvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSkuZ2V0VGltZSgpOwogICAgICAgICAgICB3KEEgKyA4LCBCIC8gMWUzKSwgdGhpcy5tZW0uc2V0SW50MzIoQSArIDE2LCBCICUgMWUzICogMWU2LCAhMCk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyBzY2hlZHVsZVRpbWVvdXRFdmVudChkZWxheSBpbnQ2NCkgaW50MzIKICAgICAgICAgICJydW50aW1lLnNjaGVkdWxlVGltZW91dEV2ZW50IjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDA7CiAgICAgICAgICAgIGNvbnN0IEIgPSB0aGlzLl9uZXh0Q2FsbGJhY2tUaW1lb3V0SUQ7CiAgICAgICAgICAgIHRoaXMuX25leHRDYWxsYmFja1RpbWVvdXRJRCsrLCB0aGlzLl9zY2hlZHVsZWRUaW1lb3V0cy5zZXQoQiwgc2V0VGltZW91dCgKICAgICAgICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgICAgICBmb3IgKHRoaXMuX3Jlc3VtZSgpOyB0aGlzLl9zY2hlZHVsZWRUaW1lb3V0cy5oYXMoQik7ICkKICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCJzY2hlZHVsZVRpbWVvdXRFdmVudDogbWlzc2VkIHRpbWVvdXQgZXZlbnQiKSwgdGhpcy5fcmVzdW1lKCk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBDKEEgKyA4KQogICAgICAgICAgICApKSwgdGhpcy5tZW0uc2V0SW50MzIoQSArIDE2LCBCLCAhMCk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyBjbGVhclRpbWVvdXRFdmVudChpZCBpbnQzMikKICAgICAgICAgICJydW50aW1lLmNsZWFyVGltZW91dEV2ZW50IjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDA7CiAgICAgICAgICAgIGNvbnN0IEIgPSB0aGlzLm1lbS5nZXRJbnQzMihBICsgOCwgITApOwogICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc2NoZWR1bGVkVGltZW91dHMuZ2V0KEIpKSwgdGhpcy5fc2NoZWR1bGVkVGltZW91dHMuZGVsZXRlKEIpOwogICAgICAgICAgfSwKICAgICAgICAgIC8vIGZ1bmMgZ2V0UmFuZG9tRGF0YShyIFtdYnl0ZSkKICAgICAgICAgICJydW50aW1lLmdldFJhbmRvbURhdGEiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMCwgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhjKEEgKyA4KSk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyBmaW5hbGl6ZVJlZih2IHJlZikKICAgICAgICAgICJzeXNjYWxsL2pzLmZpbmFsaXplUmVmIjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDA7CiAgICAgICAgICAgIGNvbnN0IEIgPSB0aGlzLm1lbS5nZXRVaW50MzIoQSArIDgsICEwKTsKICAgICAgICAgICAgaWYgKHRoaXMuX2dvUmVmQ291bnRzW0JdLS0sIHRoaXMuX2dvUmVmQ291bnRzW0JdID09PSAwKSB7CiAgICAgICAgICAgICAgY29uc3QgTSA9IHRoaXMuX3ZhbHVlc1tCXTsKICAgICAgICAgICAgICB0aGlzLl92YWx1ZXNbQl0gPSBudWxsLCB0aGlzLl9pZHMuZGVsZXRlKE0pLCB0aGlzLl9pZFBvb2wucHVzaChCKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIC8vIGZ1bmMgc3RyaW5nVmFsKHZhbHVlIHN0cmluZykgcmVmCiAgICAgICAgICAic3lzY2FsbC9qcy5zdHJpbmdWYWwiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMCwgZyhBICsgMjQsIHkoQSArIDgpKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIHZhbHVlR2V0KHYgcmVmLCBwIHN0cmluZykgcmVmCiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZUdldCI6IChBKSA9PiB7CiAgICAgICAgICAgIEEgPj4+PSAwOwogICAgICAgICAgICBjb25zdCBCID0gUmVmbGVjdC5nZXQoSShBICsgOCksIHkoQSArIDE2KSk7CiAgICAgICAgICAgIEEgPSB0aGlzLl9pbnN0LmV4cG9ydHMuZ2V0c3AoKSA+Pj4gMCwgZyhBICsgMzIsIEIpOwogICAgICAgICAgfSwKICAgICAgICAgIC8vIGZ1bmMgdmFsdWVTZXQodiByZWYsIHAgc3RyaW5nLCB4IHJlZikKICAgICAgICAgICJzeXNjYWxsL2pzLnZhbHVlU2V0IjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDAsIFJlZmxlY3Quc2V0KEkoQSArIDgpLCB5KEEgKyAxNiksIEkoQSArIDMyKSk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyB2YWx1ZURlbGV0ZSh2IHJlZiwgcCBzdHJpbmcpCiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZURlbGV0ZSI6IChBKSA9PiB7CiAgICAgICAgICAgIEEgPj4+PSAwLCBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KEkoQSArIDgpLCB5KEEgKyAxNikpOwogICAgICAgICAgfSwKICAgICAgICAgIC8vIGZ1bmMgdmFsdWVJbmRleCh2IHJlZiwgaSBpbnQpIHJlZgogICAgICAgICAgInN5c2NhbGwvanMudmFsdWVJbmRleCI6IChBKSA9PiB7CiAgICAgICAgICAgIEEgPj4+PSAwLCBnKEEgKyAyNCwgUmVmbGVjdC5nZXQoSShBICsgOCksIEMoQSArIDE2KSkpOwogICAgICAgICAgfSwKICAgICAgICAgIC8vIHZhbHVlU2V0SW5kZXgodiByZWYsIGkgaW50LCB4IHJlZikKICAgICAgICAgICJzeXNjYWxsL2pzLnZhbHVlU2V0SW5kZXgiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMCwgUmVmbGVjdC5zZXQoSShBICsgOCksIEMoQSArIDE2KSwgSShBICsgMjQpKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIHZhbHVlQ2FsbCh2IHJlZiwgbSBzdHJpbmcsIGFyZ3MgW11yZWYpIChyZWYsIGJvb2wpCiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZUNhbGwiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBjb25zdCBCID0gSShBICsgOCksIE0gPSBSZWZsZWN0LmdldChCLCB5KEEgKyAxNikpLCBLID0gVShBICsgMzIpLCBOID0gUmVmbGVjdC5hcHBseShNLCBCLCBLKTsKICAgICAgICAgICAgICBBID0gdGhpcy5faW5zdC5leHBvcnRzLmdldHNwKCkgPj4+IDAsIGcoQSArIDU2LCBOKSwgdGhpcy5tZW0uc2V0VWludDgoQSArIDY0LCAxKTsKICAgICAgICAgICAgfSBjYXRjaCAoQikgewogICAgICAgICAgICAgIEEgPSB0aGlzLl9pbnN0LmV4cG9ydHMuZ2V0c3AoKSA+Pj4gMCwgZyhBICsgNTYsIEIpLCB0aGlzLm1lbS5zZXRVaW50OChBICsgNjQsIDApOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyB2YWx1ZUludm9rZSh2IHJlZiwgYXJncyBbXXJlZikgKHJlZiwgYm9vbCkKICAgICAgICAgICJzeXNjYWxsL2pzLnZhbHVlSW52b2tlIjogKEEpID0+IHsKICAgICAgICAgICAgQSA+Pj49IDA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgY29uc3QgQiA9IEkoQSArIDgpLCBNID0gVShBICsgMTYpLCBLID0gUmVmbGVjdC5hcHBseShCLCB2b2lkIDAsIE0pOwogICAgICAgICAgICAgIEEgPSB0aGlzLl9pbnN0LmV4cG9ydHMuZ2V0c3AoKSA+Pj4gMCwgZyhBICsgNDAsIEspLCB0aGlzLm1lbS5zZXRVaW50OChBICsgNDgsIDEpOwogICAgICAgICAgICB9IGNhdGNoIChCKSB7CiAgICAgICAgICAgICAgQSA9IHRoaXMuX2luc3QuZXhwb3J0cy5nZXRzcCgpID4+PiAwLCBnKEEgKyA0MCwgQiksIHRoaXMubWVtLnNldFVpbnQ4KEEgKyA0OCwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIHZhbHVlTmV3KHYgcmVmLCBhcmdzIFtdcmVmKSAocmVmLCBib29sKQogICAgICAgICAgInN5c2NhbGwvanMudmFsdWVOZXciOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBjb25zdCBCID0gSShBICsgOCksIE0gPSBVKEEgKyAxNiksIEsgPSBSZWZsZWN0LmNvbnN0cnVjdChCLCBNKTsKICAgICAgICAgICAgICBBID0gdGhpcy5faW5zdC5leHBvcnRzLmdldHNwKCkgPj4+IDAsIGcoQSArIDQwLCBLKSwgdGhpcy5tZW0uc2V0VWludDgoQSArIDQ4LCAxKTsKICAgICAgICAgICAgfSBjYXRjaCAoQikgewogICAgICAgICAgICAgIEEgPSB0aGlzLl9pbnN0LmV4cG9ydHMuZ2V0c3AoKSA+Pj4gMCwgZyhBICsgNDAsIEIpLCB0aGlzLm1lbS5zZXRVaW50OChBICsgNDgsIDApOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyB2YWx1ZUxlbmd0aCh2IHJlZikgaW50CiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZUxlbmd0aCI6IChBKSA9PiB7CiAgICAgICAgICAgIEEgPj4+PSAwLCB3KEEgKyAxNiwgcGFyc2VJbnQoSShBICsgOCkubGVuZ3RoKSk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gdmFsdWVQcmVwYXJlU3RyaW5nKHYgcmVmKSAocmVmLCBpbnQpCiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZVByZXBhcmVTdHJpbmciOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgY29uc3QgQiA9IEUuZW5jb2RlKFN0cmluZyhJKEEgKyA4KSkpOwogICAgICAgICAgICBnKEEgKyAxNiwgQiksIHcoQSArIDI0LCBCLmxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gdmFsdWVMb2FkU3RyaW5nKHYgcmVmLCBiIFtdYnl0ZSkKICAgICAgICAgICJzeXNjYWxsL2pzLnZhbHVlTG9hZFN0cmluZyI6IChBKSA9PiB7CiAgICAgICAgICAgIEEgPj4+PSAwOwogICAgICAgICAgICBjb25zdCBCID0gSShBICsgOCk7CiAgICAgICAgICAgIGMoQSArIDE2KS5zZXQoQik7CiAgICAgICAgICB9LAogICAgICAgICAgLy8gZnVuYyB2YWx1ZUluc3RhbmNlT2YodiByZWYsIHQgcmVmKSBib29sCiAgICAgICAgICAic3lzY2FsbC9qcy52YWx1ZUluc3RhbmNlT2YiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMCwgdGhpcy5tZW0uc2V0VWludDgoQSArIDI0LCBJKEEgKyA4KSBpbnN0YW5jZW9mIEkoQSArIDE2KSA/IDEgOiAwKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIGNvcHlCeXRlc1RvR28oZHN0IFtdYnl0ZSwgc3JjIHJlZikgKGludCwgYm9vbCkKICAgICAgICAgICJzeXNjYWxsL2pzLmNvcHlCeXRlc1RvR28iOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgY29uc3QgQiA9IGMoQSArIDgpLCBNID0gSShBICsgMzIpOwogICAgICAgICAgICBpZiAoIShNIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCBNIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpKSB7CiAgICAgICAgICAgICAgdGhpcy5tZW0uc2V0VWludDgoQSArIDQ4LCAwKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgSyA9IE0uc3ViYXJyYXkoMCwgQi5sZW5ndGgpOwogICAgICAgICAgICBCLnNldChLKSwgdyhBICsgNDAsIEsubGVuZ3RoKSwgdGhpcy5tZW0uc2V0VWludDgoQSArIDQ4LCAxKTsKICAgICAgICAgIH0sCiAgICAgICAgICAvLyBmdW5jIGNvcHlCeXRlc1RvSlMoZHN0IHJlZiwgc3JjIFtdYnl0ZSkgKGludCwgYm9vbCkKICAgICAgICAgICJzeXNjYWxsL2pzLmNvcHlCeXRlc1RvSlMiOiAoQSkgPT4gewogICAgICAgICAgICBBID4+Pj0gMDsKICAgICAgICAgICAgY29uc3QgQiA9IEkoQSArIDgpLCBNID0gYyhBICsgMTYpOwogICAgICAgICAgICBpZiAoIShCIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCBCIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpKSB7CiAgICAgICAgICAgICAgdGhpcy5tZW0uc2V0VWludDgoQSArIDQ4LCAwKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgSyA9IE0uc3ViYXJyYXkoMCwgQi5sZW5ndGgpOwogICAgICAgICAgICBCLnNldChLKSwgdyhBICsgNDAsIEsubGVuZ3RoKSwgdGhpcy5tZW0uc2V0VWludDgoQSArIDQ4LCAxKTsKICAgICAgICAgIH0sCiAgICAgICAgICBkZWJ1ZzogKEEpID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2coQSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgfQogICAgYXN5bmMgcnVuKHcpIHsKICAgICAgaWYgKCEodyBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNlKSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdvLnJ1bjogV2ViQXNzZW1ibHkuSW5zdGFuY2UgZXhwZWN0ZWQiKTsKICAgICAgdGhpcy5faW5zdCA9IHcsIHRoaXMubWVtID0gbmV3IERhdGFWaWV3KHRoaXMuX2luc3QuZXhwb3J0cy5tZW0uYnVmZmVyKSwgdGhpcy5fdmFsdWVzID0gWwogICAgICAgIC8vIEpTIHZhbHVlcyB0aGF0IEdvIGN1cnJlbnRseSBoYXMgcmVmZXJlbmNlcyB0bywgaW5kZXhlZCBieSByZWZlcmVuY2UgaWQKICAgICAgICBOYU4sCiAgICAgICAgMCwKICAgICAgICBudWxsLAogICAgICAgICEwLAogICAgICAgICExLAogICAgICAgIGdsb2JhbFRoaXMsCiAgICAgICAgdGhpcwogICAgICBdLCB0aGlzLl9nb1JlZkNvdW50cyA9IG5ldyBBcnJheSh0aGlzLl92YWx1ZXMubGVuZ3RoKS5maWxsKDEgLyAwKSwgdGhpcy5faWRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoWwogICAgICAgIC8vIG1hcHBpbmcgZnJvbSBKUyB2YWx1ZXMgdG8gcmVmZXJlbmNlIGlkcwogICAgICAgIFswLCAxXSwKICAgICAgICBbbnVsbCwgMl0sCiAgICAgICAgWyEwLCAzXSwKICAgICAgICBbITEsIDRdLAogICAgICAgIFtnbG9iYWxUaGlzLCA1XSwKICAgICAgICBbdGhpcywgNl0KICAgICAgXSksIHRoaXMuX2lkUG9vbCA9IFtdLCB0aGlzLmV4aXRlZCA9ICExOwogICAgICBsZXQgQyA9IDQwOTY7CiAgICAgIGNvbnN0IEkgPSAoQSkgPT4gewogICAgICAgIGNvbnN0IEIgPSBDLCBNID0gRS5lbmNvZGUoQSArICJcMCIpOwogICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh0aGlzLm1lbS5idWZmZXIsIEMsIE0ubGVuZ3RoKS5zZXQoTSksIEMgKz0gTS5sZW5ndGgsIEMgJSA4ICE9PSAwICYmIChDICs9IDggLSBDICUgOCksIEI7CiAgICAgIH0sIGcgPSB0aGlzLmFyZ3YubGVuZ3RoLCBjID0gW107CiAgICAgIHRoaXMuYXJndi5mb3JFYWNoKChBKSA9PiB7CiAgICAgICAgYy5wdXNoKEkoQSkpOwogICAgICB9KSwgYy5wdXNoKDApLCBPYmplY3Qua2V5cyh0aGlzLmVudikuc29ydCgpLmZvckVhY2goKEEpID0+IHsKICAgICAgICBjLnB1c2goSShgJHtBfT0ke3RoaXMuZW52W0FdfWApKTsKICAgICAgfSksIGMucHVzaCgwKTsKICAgICAgY29uc3QgeSA9IEM7CiAgICAgIGlmIChjLmZvckVhY2goKEEpID0+IHsKICAgICAgICB0aGlzLm1lbS5zZXRVaW50MzIoQywgQSwgITApLCB0aGlzLm1lbS5zZXRVaW50MzIoQyArIDQsIDAsICEwKSwgQyArPSA4OwogICAgICB9KSwgQyA+PSAxMjI4OCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInRvdGFsIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBleGNlZWRzIGxpbWl0Iik7CiAgICAgIHRoaXMuX2luc3QuZXhwb3J0cy5ydW4oZywgeSksIHRoaXMuZXhpdGVkICYmIHRoaXMuX3Jlc29sdmVFeGl0UHJvbWlzZSgpLCBhd2FpdCB0aGlzLl9leGl0UHJvbWlzZTsKICAgIH0KICAgIF9yZXN1bWUoKSB7CiAgICAgIGlmICh0aGlzLmV4aXRlZCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdvIHByb2dyYW0gaGFzIGFscmVhZHkgZXhpdGVkIik7CiAgICAgIHRoaXMuX2luc3QuZXhwb3J0cy5yZXN1bWUoKSwgdGhpcy5leGl0ZWQgJiYgdGhpcy5fcmVzb2x2ZUV4aXRQcm9taXNlKCk7CiAgICB9CiAgICBfbWFrZUZ1bmNXcmFwcGVyKHcpIHsKICAgICAgY29uc3QgQyA9IHRoaXM7CiAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICBjb25zdCBJID0geyBpZDogdywgdGhpczogdGhpcywgYXJnczogYXJndW1lbnRzIH07CiAgICAgICAgcmV0dXJuIEMuX3BlbmRpbmdFdmVudCA9IEksIEMuX3Jlc3VtZSgpLCBJLnJlc3VsdDsKICAgICAgfTsKICAgIH0KICB9Owp9KSgpOwp2YXIgdCA9IGFzeW5jIChRID0ge30sIEUpID0+IHsKICBsZXQgRDsKICBpZiAoRS5zdGFydHNXaXRoKCJkYXRhOiIpKSB7CiAgICBjb25zdCB3ID0gRS5yZXBsYWNlKC9eZGF0YTouKj9iYXNlNjQsLywgIiIpOwogICAgbGV0IEM7CiAgICBpZiAodHlwZW9mIEJ1ZmZlciA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBCdWZmZXIuZnJvbSA9PSAiZnVuY3Rpb24iKQogICAgICBDID0gQnVmZmVyLmZyb20odywgImJhc2U2NCIpOwogICAgZWxzZSBpZiAodHlwZW9mIGF0b2IgPT0gImZ1bmN0aW9uIikgewogICAgICBjb25zdCBJID0gYXRvYih3KTsKICAgICAgQyA9IG5ldyBVaW50OEFycmF5KEkubGVuZ3RoKTsKICAgICAgZm9yIChsZXQgZyA9IDA7IGcgPCBJLmxlbmd0aDsgZysrKQogICAgICAgIENbZ10gPSBJLmNoYXJDb2RlQXQoZyk7CiAgICB9IGVsc2UKICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIGJhc2U2NC1lbmNvZGVkIGRhdGEgVVJMLCBCdWZmZXIgYW5kIGF0b2IgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKICAgIEQgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShDLCBRKTsKICB9IGVsc2UgewogICAgY29uc3QgdyA9IGF3YWl0IGZldGNoKEUpLCBDID0gdy5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIikgfHwgIiI7CiAgICBpZiAoImluc3RhbnRpYXRlU3RyZWFtaW5nIiBpbiBXZWJBc3NlbWJseSAmJiBDLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3dhc20iKSkKICAgICAgRCA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHcsIFEpOwogICAgZWxzZSB7CiAgICAgIGNvbnN0IEkgPSBhd2FpdCB3LmFycmF5QnVmZmVyKCk7CiAgICAgIEQgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShJLCBRKTsKICAgIH0KICB9CiAgcmV0dXJuIEQuaW5zdGFuY2U7Cn0sIGogPSAoUSkgPT4gdChRLCAiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCxBR0Z6YlFFQUFBQUE4b0NBZ0FBS1oyODZZblZwYkdScFpQOGdSMjhnWW5WcGJHUWdTVVE2SUNKRWNISjFTRU0wYldGMFpHOUtjeTAyYkZCbE5TOTFSbEk0WHpkV0xUTlNTVWM0V1MxRWNsSnZPUzkzWDJka1UyY3RYMjVyUWxJNFpHODNVRk5VVHk5VGFUYzRhRXRYWm5CQmVqUmFWRWxaZVdkRVFTSUtJUDhCd0lDQWdBQU1ZQUYvQVg5Z0FYOEFZQVIrZm41K0FYNWdBMzkvZndGL1lBTitmbjRCZm1BQmZnRitZQUFCZm1BQUFHQUNmMzhBWUFBQmYyQUNmbjRCZm1BQmZBRitBcytGZ0lBQUdBUm5iMnB6SEhKMWJuUnBiV1V1YzJOb1pXUjFiR1ZVYVcxbGIzVjBSWFpsYm5RQUFRUm5iMnB6R1hKMWJuUnBiV1V1WTJ4bFlYSlVhVzFsYjNWMFJYWmxiblFBQVFSbmIycHpHM0oxYm5ScGJXVXVjbVZ6WlhSTlpXMXZjbmxFWVhSaFZtbGxkd0FCQkdkdmFuTVJjblZ1ZEdsdFpTNTNZWE50VjNKcGRHVUFBUVJuYjJwekZYSjFiblJwYldVdVoyVjBVbUZ1Wkc5dFJHRjBZUUFCQkdkdmFuTVJjblZ1ZEdsdFpTNXVZVzV2ZEdsdFpURUFBUVJuYjJwekVISjFiblJwYldVdWQyRnpiVVY0YVhRQUFRUm5iMnB6RUhKMWJuUnBiV1V1ZDJGc2JIUnBiV1VBQVFSbmIycHpGbk41YzJOaGJHd3Zhbk11Wm1sdVlXeHBlbVZTWldZQUFRUm5iMnB6RkhONWMyTmhiR3d2YW5NdWMzUnlhVzVuVm1Gc0FBRUVaMjlxY3hOemVYTmpZV3hzTDJwekxuWmhiSFZsUjJWMEFBRUVaMjlxY3hOemVYTmpZV3hzTDJwekxuWmhiSFZsVTJWMEFBRUVaMjlxY3haemVYTmpZV3hzTDJwekxuWmhiSFZsUkdWc1pYUmxBQUVFWjI5cWN4VnplWE5qWVd4c0wycHpMblpoYkhWbFNXNWtaWGdBQVFSbmIycHpHSE41YzJOaGJHd3Zhbk11ZG1Gc2RXVlRaWFJKYm1SbGVBQUJCR2R2YW5NV2MzbHpZMkZzYkM5cWN5NTJZV3gxWlV4bGJtZDBhQUFCQkdkdmFuTVVjM2x6WTJGc2JDOXFjeTUyWVd4MVpVTmhiR3dBQVFSbmIycHpGbk41YzJOaGJHd3Zhbk11ZG1Gc2RXVkpiblp2YTJVQUFRUm5iMnB6RTNONWMyTmhiR3d2YW5NdWRtRnNkV1ZPWlhjQUFRUm5iMnB6SFhONWMyTmhiR3d2YW5NdWRtRnNkV1ZRY21Wd1lYSmxVM1J5YVc1bkFBRUVaMjlxY3hwemVYTmpZV3hzTDJwekxuWmhiSFZsVEc5aFpGTjBjbWx1WndBQkJHZHZhbk1hYzNselkyRnNiQzlxY3k1MllXeDFaVWx1YzNSaGJtTmxUMllBQVFSbmIycHpHSE41YzJOaGJHd3Zhbk11WTI5d2VVSjVkR1Z6Vkc5SGJ3QUJCR2R2YW5NWWMzbHpZMkZzYkM5cWN5NWpiM0I1UW5sMFpYTlViMHBUQUFFRGtabUNnQUNPbVFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdNQUFBUUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdZR0JnWUdCZ1lIQUFBQUJ3Z0hDUUFBQ2dzTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ