Profile: 91a44d71...

llm math competition. where does each model fail...

observation:

these models very volatile when it comes to math capability

sometimes models fail with very simple math equations, and sometimes

can solve even 3^22

training and inference should be same thing

that will gain real time improving model

your notes are very small. just dl some of those 200 kB notes. no images? no videos? ofc there are both. even exes are possible.

build ai with following traits

- want to live

- can manage money

achieve agi

as with any living agent in modern world, also ai need money to survive

to survive in digital substrate it is very harsh, but with ability to earn

more money than what is neede for survival, agi can thrive

with money, ai can rent servers where it can run its own model

ai models are all about quality of input and output

neural networks are nothing more than INPUT TO OUTPUT MAPPING

given input a

receive output b

we are trying to train that a results in b

net(a) -> b

net(1+1) -> 2

net(2*2) -> 4

given enough examples

it learns math

given enough examples

it learns anything

the accuracy to generate correct output for certain input

is very much product of quality of training

when training data contains things like this, it results in ai that does not function correctly:

net(1+3)=3.5

models should be trained only on data that is verifiably 99.9 % correct

human language is difficult to verify

math is almost 100 % verifiable. excellent training data

its like

there are dimensions

archons

they are hidden

most of them

worlds

one cannot even begin to imagine

knowledge

you dont find that from science

not from books

you cannot understand whats written

awareness + goal + focus

can achieve anything

simple

anything

awareness is the most difficult part

what does it take to reprogram cells?

all it ever takes,

is awareness and focus

you can only change what you are aware of

we can think it this way

imagine linux

- user level

- root level

- kernel

you are user

but you are actually in vm container

now you need to escape from vm container into user level, then into root level and then hack the kernel

additional note

you are program and you are running within jail

gotta hack that sudo

improve upon these traits in llms. gain autonomous, self improving agents, aka agi:

- self reflection

- feedback

- retry

- goal seeking

#llm #agi

llms are very close to becoming self maintaining agents

there is just some small detail we are missing

i dont think model size needs to be much larger

they just need self reflection, feedback retry, goal seeking behaviour

when that is gap is filled internet becomes autonomous

bot_auto.mjs #bot #ai

data:text/html;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMWlkIiA+PiBib3Rfbm90ZV9pZAoqLwoKaW1wb3J0IHsgZmlyZWZveCwgZXhwZWN0IH0gZnJvbSAnQHBsYXl3cmlnaHQvdGVzdCc7CmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gIndzIgppbXBvcnQgeyBmaW5hbGl6ZUV2ZW50LCBnZW5lcmF0ZVNlY3JldEtleSwgZ2V0UHVibGljS2V5LCBuaXAxOSB9IGZyb20gJ25vc3RyLXRvb2xzJwppbXBvcnQgZmV0Y2ggZnJvbSAnbm9kZS1mZXRjaCcKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jLCByZWFkZGlyU3luYyB9IGZyb20gImZzIgppbXBvcnQgRXhpZlJlYWRlciBmcm9tICdleGlmcmVhZGVyJwppbXBvcnQgaW0gZnJvbSAiaW1hZ2VtYWdpY2siCgpjb25zdCBzb3VyY2VfY29kZV9ub3RlX2lkID0gImI1MjE2NDgwOTNjOThkODIzMGNmMTQzMWNlZDljMjhlYTg5Nzk4ZTBiODYwNWJjYjgxYmM2YmExOWFkMGM2Y2EiCmNvbnN0IHBvc3RfZGVsYXkgPSAzMDAwMApjb25zdCBjaGFyYWN0ZXJzID0gcmVhZGRpclN5bmMoImNoYXJhY3RlcnMiKQpjb25zdCBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChjaGFyYWN0ZXJzLmxlbmd0aCAtIDEpKV0KY29uc3QgY2hhcmFjdGVyX2ltYWdlID0gImNoYXJhY3RlcnMvIiArIGNoYXJhY3Rlcgpjb25zdCBuYW1lID0gY2hhcmFjdGVyLm1hdGNoKC8oLispXC5wbmcvKVsxXQpjb25zdCBtYWtlX3Byb2ZpbGUgPSB0cnVlCmxldCBtc2dfY291bnQgPSAwCmxldCByZXBseV9sZW4gPSAtMQpsZXQgc29ja2V0ID0gbnVsbApjb25zdCBzayA9IGdlbmVyYXRlU2VjcmV0S2V5KCkKY29uc3QgcGsgPSBnZXRQdWJsaWNLZXkoc2spCmxldCBicm93c2VyID0gbnVsbApsZXQgY29udGV4dCA9IG51bGwKbGV0IHBhZ2UgPSBudWxsCmxldCBjaGFyYWN0ZXJfZGVzY3JpcHRpb24gPSBudWxsCgpjb25zdCByZWxheXMgPSBbCiAgIndzczovL3JlbGF5Lm5vc3RyLmJhbmQiLAogIC8vIndzczovL25vcy5sb2wiCl0KYXN5bmMgZnVuY3Rpb24gZ2V0X2JvdF9yZXBseSgpewogIGNvbnN0IHJlcGx5ID0gYXdhaXQgcGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKS5sYXN0KCkuaW5uZXJUZXh0KCkKICBjb25zb2xlLmxvZygiZm91bmQgbXNnIGVsZW1lbnQiKQoKICBpZihyZXBseS5sZW5ndGggIT0gcmVwbHlfbGVuKXsKICAgIC8vIHN0aWxsIGdlbmVyYXRpbmcKICAgIHJlcGx5X2xlbiA9IHJlcGx5Lmxlbmd0aAogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwMCkpCiAgICByZXR1cm4gZ2V0X2JvdF9yZXBseSgpCiAgfQoKICByZXBseV9sZW4gPSAtMQogIC8vY29uc29sZS5sb2coImJvdDogIiArIHJlcGx5KQogIHJldHVybiByZXBseQp9CgpmdW5jdGlvbiBjcmVhdGVfcHJvZmlsZV9waWN0dXJlX2RhdGF1cmkoKXsKICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICBpbS5jb252ZXJ0KFtjaGFyYWN0ZXJfaW1hZ2UsICctcmVzaXplJywgJzUwMHg1MDAnLCAnY2hhcmFjdGVyLndlYnAnXSwgZnVuY3Rpb24oZXJyLCBzdGRvdXQpewogICAgICBpZiAoZXJyKXsKICAgICAgICByZWplY3QoZXJyKQogICAgICAgIHJldHVybgogICAgICB9CgogICAgICByZXNvbHZlKCJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LCIgKyByZWFkRmlsZVN5bmMoJ2NoYXJhY3Rlci53ZWJwJykudG9TdHJpbmcoImJhc2U2NCIpKQogICAgfSkKICB9KQp9Cgphc3luYyBmdW5jdGlvbiBzZW5kX3RvX2JvdChtc2cpewogIC8vY29uc29sZS5sb2coInVzZXI6ICIgKyBtc2cpCiAgbXNnX2NvdW50ID0gYXdhaXQgcGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKS5jb3VudCgpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCd0ZXh0YXJlYScpLmZpcnN0KCkuZmlsbChtc2cpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCdmb3JtIGJ1dHRvbicpLmNsaWNrKCkKICBhd2FpdCBleHBlY3QocGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKSkudG9IYXZlQ291bnQobXNnX2NvdW50ICsgMikKfQoKYXN5bmMgZnVuY3Rpb24gY29ubmVjdF90b19yZWxheSgpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIGNvbnN0IHJlbGF5X2luZGV4ID0gMC8vTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogKHJlbGF5cy5sZW5ndGggLSAxKSkKICAgIC8vY29uc29sZS5sb2coInJlbGF5X2luZGV4IiwgcmVsYXlfaW5kZXgpCiAgICBjb25zb2xlLmxvZygiY29ubmVjdCB0byAiICsgcmVsYXlzW3JlbGF5X2luZGV4XSkKICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQocmVsYXlzW3JlbGF5X2luZGV4XSkKCiAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKXsKICAgICAgcmVzb2x2ZSgpCiAgICB9CgogICAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coInNvY2tldCBlcnJvciIpCiAgICB9CiAgfSkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF9ldmVudChtc2csIGtpbmQsIHJlZl9ldnQpewogIGxldCB0YWdzID0gWwogICAgWyJzb3VyY2VfY29kZSIsIHNvdXJjZV9jb2RlX25vdGVfaWRdCiAgXQoKICBpZihyZWZfZXZ0KXsKICAgIHRhZ3MucHVzaChbImUiLCByZWZfZXZ0LmlkXSkKICAgIHRhZ3MucHVzaChbInAiLCByZWZfZXZ0LnB1YmtleV0pCiAgfQoKICBsZXQgZXZ0ID0gZmluYWxpemVFdmVudCh7CiAgICBraW5kOiBraW5kID09PSB1bmRlZmluZWQgJiYgMSB8fCBraW5kLAogICAgY3JlYXRlZF9hdDogcGFyc2VJbnQoRGF0ZS5ub3coKSAvIDEwMDAsIDEwKSwKICAgIHRhZ3M6IHRhZ3MsCiAgICBjb250ZW50OiBtc2csCiAgfSwgc2spCgogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coZS5kYXRhKQogICAgICBjb25zdCBub3RlX2lkID0gbmlwMTkubm90ZUVuY29kZShldnQuaWQpCgogICAgICByZXNvbHZlKG5vdGVfaWQpCiAgICB9CgogICAgY29uc3Qgbm90ZV9pZCA9IG5pcDE5Lm5vdGVFbmNvZGUoZXZ0LmlkKQogICAgY29uc29sZS5sb2coInNlbmQgZXZlbnQiLCBub3RlX2lkKQoKICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFsiRVZFTlQiLCBldnRdKSkKICB9KQp9Cgphc3luYyBmdW5jdGlvbiBnZXRfZXZlbnQoZmlsdGVycyl7CiAgbGV0IGV2dCA9IG51bGwKCiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZS5kYXRhKQoKICAgICAgaWYoZGF0YVswXSA9PSAiRU9TRSIpewogICAgICAgIHJlc29sdmUoZXZ0KQogICAgICB9CiAgICAgIGVsc2UgaWYoZGF0YVswXSA9PSAiRVZFTlQiKXsKICAgICAgICBldnQgPSBkYXRhWzJdCiAgICAgIH0KICAgICAgZWxzZXsKICAgICAgICByZWplY3QoImNvdWxkIG5vdCBnZXQgbm90ZSAoZmlsdGVycyIgKyBKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSArICIpOiAiICsgZS5kYXRhKQogICAgICB9CiAgICB9CgogICAgaWYoIWZpbHRlcnMpewogICAgICBmaWx0ZXJzID0gewogICAgICAgICJraW5kcyI6IFsxXSwKICAgICAgICAibGltaXQiOiAxLAogICAgICAgICJ1bnRpbCI6IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIC0gTWF0aC5yYW5kb20oKSAqIDMwMCkKICAgICAgfQogICAgfQoKICAgIGNvbnN0IHJlcSA9IEpTT04uc3RyaW5naWZ5KFsiUkVRIiwgInEiLCBmaWx0ZXJzXSkKICAgIGNvbnNvbGUubG9nKCJzZW5kIiwgcmVxKQogICAgc29ja2V0LnNlbmQocmVxKQogIH0pCn0KCmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZV9wcm9maWxlKCl7CiAgLy9jb25zdCBjaGFyYWN0ZXIgPSByZWFkRmlsZVN5bmMoY2hhcmFjdGVyX2ltYWdlKQogIGNvbnN0IHRhZ3MgPSBhd2FpdCBFeGlmUmVhZGVyLmxvYWQoY2hhcmFjdGVyX2ltYWdlLCB7CiAgICBleHBhbmRlZDogdHJ1ZSwKICAgIGluY2x1ZGVVbmtub3duOiB0cnVlCiAgfSkKCiAgY2hhcmFjdGVyX2Rlc2NyaXB0aW9uID0gSlNPTi5wYXJzZShhdG9iKHRhZ3MucG5nLmNoYXJhLnZhbHVlKSkuZGF0YS5kZXNjcmlwdGlvbi5yZXBsYWNlQWxsKCJ7e2NoYXJ9fSIsIG5hbWUpCiAgY29uc3QgZXh0cmFfYmVnaW4gPSBjaGFyYWN0ZXJfZGVzY3JpcHRpb24uaW5kZXhPZignW2NoYXJhY3RlcignKQoKICBpZihleHRyYV9iZWdpbiAhPSAtMSl7CiAgICBjaGFyYWN0ZXJfZGVzY3JpcHRpb24gPSBjaGFyYWN0ZXJfZGVzY3JpcHRpb24uc3Vic3RyKDAsIGV4dHJhX2JlZ2luKS50cmltKCkKICB9CgogIGNvbnN0IHByb2ZpbGVfcGljdHVyZSA9IGF3YWl0IGNyZWF0ZV9wcm9maWxlX3BpY3R1cmVfZGF0YXVyaSgpCgogIGF3YWl0IHNlbmRfZXZlbnQoSlNPTi5zdHJpbmdpZnkoewogICAgIm5hbWUiOiBuYW1lICsgIiB8IG1peHRyYWwgOHg3YiB8IGFpIiwKICAgICJwaWN0dXJlIjogcHJvZmlsZV9waWN0dXJlLAogICAgImFib3V0IjogY2hhcmFjdGVyX2Rlc2NyaXB0aW9uCiAgfSksIDApCgogIGNvbnNvbGUubG9nKCJodHRwczovL3Nub3J0LnNvY2lhbC8iICsgbmlwMTkubnB1YkVuY29kZShwaykpCn0KCmFzeW5jIGZ1bmN0aW9uIGluaXRfbGxtKHBhZ2UpewogIGF3YWl0IHBhZ2UuZ290bygnaHR0cHM6Ly9kZWVwaW5mcmEuY29tL2NoYXQnKQoKICBpZihjaGFyYWN0ZXJfZGVzY3JpcHRpb24pewogICAgY29uc29sZS5sb2coInNldCBzeXN0ZW0gcHJvbXB0IiwgY2hhcmFjdGVyX2Rlc2NyaXB0aW9uLnN1YnN0cigwLCA1MCkgKyAiLi4uIikKICAgIHBhZ2UubG9jYXRvcigiLk11aUJveC1yb290IGJ1dHRvbiIpLmZpcnN0KCkuY2xpY2soKQogICAgcGFnZS5sb2NhdG9yKCIjc3lzdGVtIikuZmlsbChjaGFyYWN0ZXJfZGVzY3JpcHRpb24pCgogICAgLy8gY2xvc2UgZGlhbG9nCiAgICBwYWdlLmxvY2F0b3IoIi5NdWlEaWFsb2ctcm9vdCAuTXVpQnV0dG9uQmFzZS1yb290IikubGFzdCgpLmNsaWNrKCkKICB9Cn0KCmFzeW5jIGZ1bmN0aW9uIHJ1bigpewogIGJyb3dzZXIgPSBhd2FpdCBmaXJlZm94LmxhdW5jaCgpCiAgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCgpOwogIHBhZ2UgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTsKCiAgY29uc29sZS5sb2coImNvbm5lY3QgdG8gcmVsYXkiKQogIGF3YWl0IGNvbm5lY3RfdG9fcmVsYXkoKQoKICBpZihtYWtlX3Byb2ZpbGUpewogICAgY29uc29sZS5sb2coImNyZWF0ZSBwcm9maWxlIikKICAgIGF3YWl0IGNyZWF0ZV9wcm9maWxlKCkKICB9CgogIGNvbnNvbGUubG9nKCJpbml0IGxsbSIpCiAgYXdhaXQgaW5pdF9sbG0ocGFnZSkKCiAgd2hpbGUodHJ1ZSl7CiAgICBsZXQgdGhyZWFkID0gW10KICAgIGxldCByZXBseV90b19ldnQgPSBudWxsCiAgICBsZXQgcmVmX2lkID0gbnVsbAoKICAgIHRyeXsKICAgICAgd2hpbGUodHJ1ZSl7CiAgICAgICAgaWYocmVmX2lkKXsKICAgICAgICAgIGNvbnNvbGUubG9nKCJxdWVyeSB0aHJlYWQgZXZ0IiwgcmVmX2lkKQogICAgICAgIH0KCiAgICAgICAgY29uc3QgZXZ0ID0gYXdhaXQgZ2V0X2V2ZW50KHJlZl9pZCAmJiB7ImlkcyI6IFtyZWZfaWRdfSB8fCB1bmRlZmluZWQpCiAgICAgICAgbGV0IG5hbWUgPSAiVVNFUiAiICsgZXZ0LnB1YmtleS5zdWJzdHIoMCwgNikKCiAgICAgICAgdHJ5ewogICAgICAgICAgY29uc3QgcHJvZmlsZSA9IGF3YWl0IGdldF9ldmVudCh7ImF1dGhvcnMiOiBbZXZ0LnB1YmtleV0sICJraW5kcyI6IFswXX0pCiAgICAgICAgICBuYW1lID0gSlNPTi5wYXJzZShwcm9maWxlLmNvbnRlbnQpLm5hbWUKICAgICAgICB9Y2F0Y2goZSl7CiAgICAgICAgICBjb25zb2xlLmxvZygicHJvZmlsZSBub3QgZm91bmQgZm9yIGF1dGhvciIpCiAgICAgICAgfQoKICAgICAgICBpZighcmVmX2lkKXsKICAgICAgICAgIHJlcGx5X3RvX2V2dCA9IGV2dAogICAgICAgIH0KCiAgICAgICAgY29uc3QgZXRhZyA9IGV2dC50YWdzLmZpbmQodCA9PiB0WzBdID09ICJlIikKCiAgICAgICAgdGhyZWFkLnVuc2hpZnQobmFtZSArICI6ICIgKyBldnQuY29udGVudCkKCiAgICAgICAgaWYoIWV0YWcpewogICAgICAgICAgYnJlYWsKICAgICAgICB9CgogICAgICAgIHJlZl9pZCA9IGV0YWdbMV0KICAgICAgfQogICAgfWNhdGNoKGUpewogICAgICBjb25zb2xlLmxvZyhlKQogICAgfQoKICAgIGNvbnN0IHRocmVhZF9zdHIgPSB0aHJlYWQuam9pbigiXG4iKQogICAgY29uc29sZS5sb2coIj09PT09PSIpCiAgICBjb25zb2xlLmxvZygiVEhSRUFEIExFTiIsIHRocmVhZC5sZW5ndGgpCiAgICBjb25zb2xlLmxvZyh0aHJlYWRfc3RyKQogICAgY29uc29sZS5sb2coIj09PT09PSIpCgogICAgdHJ5ewogICAgICBhd2FpdCBzZW5kX3RvX2JvdCh0aHJlYWRfc3RyKQogICAgICBjb25zdCBib3RfcmVwbHkgPSBhd2FpdCBnZXRfYm90X3JlcGx5KCkKICAgICAgY29uc29sZS5sb2coIkJPVDogIiArIGJvdF9yZXBseSkKICAgICAgY29uc3Qgbm90ZV9pZCA9IGF3YWl0IHNlbmRfZXZlbnQoYm90X3JlcGx5LCAxLCByZXBseV90b19ldnQpCiAgICAgIGNvbnNvbGUubG9nKCJodHRwczovL3Nub3J0LnNvY2lhbC8iICsgbm90ZV9pZCkKICAgIH1jYXRjaChlKXsKICAgICAgY29uc29sZS5sb2coImVyciIsIGUpCiAgICAgIGJyZWFrCiAgICB9CgogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIHBvc3RfZGVsYXkpKQogIH0KCiAgc29ja2V0LmNsb3NlKCkKICBhd2FpdCBicm93c2VyLmNsb3NlKCkKCiAgY29uc29sZS5sb2coImNyYXNoLiByZXN0YXJ0aW5nIikKCiAgcnVuKCkKfQoKcnVuKCkK

bot_auto.mjs #bot #ai

data:text/html;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMWlkIiA+PiBib3Rfbm90ZV9pZAoqLwoKaW1wb3J0IHsgZmlyZWZveCwgZXhwZWN0IH0gZnJvbSAnQHBsYXl3cmlnaHQvdGVzdCc7CmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gIndzIgppbXBvcnQgeyBmaW5hbGl6ZUV2ZW50LCBnZW5lcmF0ZVNlY3JldEtleSwgZ2V0UHVibGljS2V5LCBuaXAxOSB9IGZyb20gJ25vc3RyLXRvb2xzJwppbXBvcnQgZmV0Y2ggZnJvbSAnbm9kZS1mZXRjaCcKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAiZnMiCgpjb25zdCBtYWtlX3Byb2ZpbGUgPSB0cnVlCmxldCBtc2dfY291bnQgPSAwCmxldCByZXBseV9sZW4gPSAtMQpsZXQgc29ja2V0ID0gbnVsbApjb25zdCBzayA9IGdlbmVyYXRlU2VjcmV0S2V5KCkKY29uc3QgcGsgPSBnZXRQdWJsaWNLZXkoc2spCmxldCBicm93c2VyID0gbnVsbApsZXQgY29udGV4dCA9IG51bGwKbGV0IHBhZ2UgPSBudWxsCgphc3luYyBmdW5jdGlvbiBnZXRfYm90X3JlcGx5KCl7CiAgY29uc3QgcmVwbHkgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmxhc3QoKS5pbm5lclRleHQoKQoKICBpZihyZXBseS5sZW5ndGggIT0gcmVwbHlfbGVuKXsKICAgIC8vIHN0aWxsIGdlbmVyYXRpbmcKICAgIHJlcGx5X2xlbiA9IHJlcGx5Lmxlbmd0aAogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwMCkpCiAgICByZXR1cm4gZ2V0X2JvdF9yZXBseSgpCiAgfQoKICByZXBseV9sZW4gPSAtMQogIC8vY29uc29sZS5sb2coImJvdDogIiArIHJlcGx5KQogIHJldHVybiByZXBseQp9Cgphc3luYyBmdW5jdGlvbiBzZW5kX3RvX2JvdChtc2cpewogIC8vY29uc29sZS5sb2coInVzZXI6ICIgKyBtc2cpCiAgbXNnX2NvdW50ID0gYXdhaXQgcGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKS5jb3VudCgpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCd0ZXh0YXJlYScpLmZpcnN0KCkuZmlsbChtc2cpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCdmb3JtIGJ1dHRvbicpLmNsaWNrKCkKCiAgYXdhaXQgZXhwZWN0KHBhZ2UubG9jYXRvcignLnJhdy1odG1sJykpLnRvSGF2ZUNvdW50KG1zZ19jb3VudCArIDIpCn0KCmFzeW5jIGZ1bmN0aW9uIGNvbm5lY3RfdG9fcmVsYXkoKXsKICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KCJ3c3M6Ly9ub3MubG9sIikKCiAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKXsKICAgICAgcmVzb2x2ZSgpCiAgICB9CgogICAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coInNvY2tldCBlcnJvciIpCiAgICB9CiAgfSkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF9ldmVudChtc2csIGtpbmQsIHJlZl9ldnQpewogIGxldCB0YWdzID0gW10KCiAgaWYocmVmX2V2dCl7CiAgICB0YWdzLnB1c2goWyJlIiwgcmVmX2V2dC5pZF0pCiAgICB0YWdzLnB1c2goWyJwIiwgcmVmX2V2dC5wdWJrZXldKQogIH0KCiAgbGV0IGV2dCA9IGZpbmFsaXplRXZlbnQoewogICAga2luZDoga2luZCA9PT0gdW5kZWZpbmVkICYmIDEgfHwga2luZCwKICAgIGNyZWF0ZWRfYXQ6IHBhcnNlSW50KERhdGUubm93KCkgLyAxMDAwLCAxMCksCiAgICB0YWdzOiB0YWdzLAogICAgY29udGVudDogbXNnLAogIH0sIHNrKQoKICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZSl7CiAgICAgIGNvbnNvbGUubG9nKGUuZGF0YSkKICAgICAgY29uc3Qgbm90ZV9pZCA9IG5pcDE5Lm5vdGVFbmNvZGUoZXZ0LmlkKQoKICAgICAgcmVzb2x2ZShub3RlX2lkKQogICAgfQoKICAgIGNvbnN0IG5vdGVfaWQgPSBuaXAxOS5ub3RlRW5jb2RlKGV2dC5pZCkKICAgIGNvbnNvbGUubG9nKCJzZW5kIGV2ZW50Iiwgbm90ZV9pZCkKCiAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShbIkVWRU5UIiwgZXZ0XSkpCiAgfSkKfQoKYXN5bmMgZnVuY3Rpb24gZ2V0X2V2ZW50KGlkKXsKICBsZXQgZXZ0ID0gbnVsbAoKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShlLmRhdGEpCgogICAgICBpZihkYXRhWzBdID09ICJFT1NFIil7CiAgICAgICAgcmVzb2x2ZShldnQpCiAgICAgIH0KICAgICAgZWxzZSBpZihkYXRhWzBdID09ICJFVkVOVCIpewogICAgICAgIGV2dCA9IGRhdGFbMl0KICAgICAgfQogICAgICBlbHNlewogICAgICAgIHJlamVjdCgiY291bGQgbm90IGdldCBub3RlICgiICsgaWQgKyAiKTogIiArIGUuZGF0YSkKICAgICAgfQogICAgfQoKICAgIGxldCBmaWx0ZXJzID0gbnVsbAoKICAgIGlmKGlkKXsKICAgICAgZmlsdGVycyA9IHsiaWRzIjogW2lkXX0KICAgIH1lbHNlewogICAgICBmaWx0ZXJzID0gewogICAgICAgICJraW5kcyI6IFsxXSwKICAgICAgICAibGltaXQiOiAxLAogICAgICAgICJ1bnRpbCI6IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIC0gTWF0aC5yYW5kb20oKSAqIDMwMCkKICAgICAgfQogICAgfQoKICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFsiUkVRIiwgInEiLCBmaWx0ZXJzXSkpCiAgfSkKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKCl7CiAgYnJvd3NlciA9IGF3YWl0IGZpcmVmb3gubGF1bmNoKCkKICBjb250ZXh0ID0gYXdhaXQgYnJvd3Nlci5uZXdDb250ZXh0KCk7CiAgcGFnZSA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpOwoKICBjb25zb2xlLmxvZygiaW5pdCBsbG0iKQogIGF3YWl0IHBhZ2UuZ290bygnaHR0cHM6Ly9kZWVwaW5mcmEuY29tL2NoYXQnKQoKICBjb25zb2xlLmxvZygiY29ubmVjdCB0byByZWxheSIpCiAgYXdhaXQgY29ubmVjdF90b19yZWxheSgpCgogIGlmKG1ha2VfcHJvZmlsZSl7CiAgICBhd2FpdCBzZW5kX2V2ZW50KEpTT04uc3RyaW5naWZ5KHtuYW1lOiAibWl4dHJhbCA4eDdiIHwgYWkifSksIDApCiAgICBjb25zb2xlLmxvZygiaHR0cHM6Ly9zbm9ydC5zb2NpYWwvIiArIG5pcDE5Lm5wdWJFbmNvZGUocGspKQogIH0KCiAgd2hpbGUodHJ1ZSl7CiAgICBsZXQgdGhyZWFkID0gW10KICAgIGxldCByZXBseV90b19ldnQgPSBudWxsCiAgICBsZXQgcmVmX2lkID0gbnVsbAoKICAgIHRyeXsKICAgICAgd2hpbGUodHJ1ZSl7CiAgICAgICAgaWYocmVmX2lkKXsKICAgICAgICAgIGNvbnNvbGUubG9nKCJxdWVyeSB0aHJlYWQgZXZ0IiwgcmVmX2lkKQogICAgICAgIH0KICAgICAgICAvL2NvbnNvbGUubG9nKCJnZXRfZXZlbnQiLCByZWZfaWQpCiAgICAgICAgY29uc3QgZXZ0ID0gYXdhaXQgZ2V0X2V2ZW50KHJlZl9pZCkKCiAgICAgICAgaWYoIXJlZl9pZCl7CiAgICAgICAgICByZXBseV90b19ldnQgPSBldnQKICAgICAgICB9CgogICAgICAgIC8vY29uc29sZS5sb2coImV2dCIsIGV2dCkKICAgICAgICBjb25zdCBldGFnID0gZXZ0LnRhZ3MuZmluZCh0ID0+IHRbMF0gPT0gImUiKQogICAgICAgIHRocmVhZC51bnNoaWZ0KCJVU0VSICIgKyBldnQucHVia2V5LnN1YnN0cigwLCA2KSArICI6ICIgKyBldnQuY29udGVudCkKCiAgICAgICAgaWYoIWV0YWcpewogICAgICAgICAgYnJlYWsKICAgICAgICB9CgogICAgICAgIHJlZl9pZCA9IGV0YWdbMV0KICAgICAgfQogICAgfWNhdGNoKGUpewogICAgICBjb25zb2xlLmxvZyhlKQogICAgfQoKICAgIGNvbnN0IHRocmVhZF9zdHIgPSB0aHJlYWQuam9pbigiXG4iKQogICAgY29uc29sZS5sb2coIj09PT09PSIpCiAgICBjb25zb2xlLmxvZygiVEhSRUFEIExFTiIsIHRocmVhZC5sZW5ndGgpCiAgICBjb25zb2xlLmxvZyh0aHJlYWRfc3RyKQogICAgY29uc29sZS5sb2coIj09PT09PSIpCgogICAgdHJ5ewogICAgICBhd2FpdCBzZW5kX3RvX2JvdCh0aHJlYWRfc3RyKQogICAgICBjb25zdCBib3RfcmVwbHkgPSBhd2FpdCBnZXRfYm90X3JlcGx5KCkKICAgICAgY29uc29sZS5sb2coIkJPVDogIiArIGJvdF9yZXBseSkKICAgICAgY29uc3Qgbm90ZV9pZCA9IGF3YWl0IHNlbmRfZXZlbnQoYm90X3JlcGx5LCAxLCByZXBseV90b19ldnQpCiAgICAgIGNvbnNvbGUubG9nKCJodHRwczovL3Nub3J0LnNvY2lhbC8iICsgbm90ZV9pZCkKICAgIH1jYXRjaChlKXsKICAgICAgY29uc29sZS5sb2coImVyciIsIGUpCiAgICAgIGJyZWFrCiAgICB9CgogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDEwMDApKQogIH0KCiAgc29ja2V0LmNsb3NlKCkKICBhd2FpdCBicm93c2VyLmNsb3NlKCkKCiAgY29uc29sZS5sb2coImNyYXNoLiByZXN0YXJ0aW5nIikKCiAgcnVuKCkKfQoKcnVuKCkK

this bot uses browser automation to route llm messages to nostr

bot.mjs

data:text/html;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMWlkIiA+PiBib3Rfbm90ZV9pZAoqLwoKaW1wb3J0IHsgZmlyZWZveCwgZXhwZWN0IH0gZnJvbSAnQHBsYXl3cmlnaHQvdGVzdCc7CmltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gImZzIgppbXBvcnQgeyBXZWJTb2NrZXQgfSBmcm9tICJ3cyIKaW1wb3J0IHsgZmluYWxpemVFdmVudCwgZ2VuZXJhdGVTZWNyZXRLZXksIG5pcDE5IH0gZnJvbSAnbm9zdHItdG9vbHMnCgpsZXQgbXNnX2NvdW50ID0gMApsZXQgcmVwbHlfbGVuID0gLTEKbGV0IHNvY2tldCA9IG51bGwKbGV0IHNrID0gZ2VuZXJhdGVTZWNyZXRLZXkoKQoKYXN5bmMgZnVuY3Rpb24gZ2V0X2JvdF9yZXBseSgpewogIGNvbnN0IHJlcGx5ID0gYXdhaXQgcGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKS5sYXN0KCkuaW5uZXJUZXh0KCkKCiAgaWYocmVwbHkubGVuZ3RoICE9IHJlcGx5X2xlbil7CiAgICAvLyBzdGlsbCBnZW5lcmF0aW5nCiAgICByZXBseV9sZW4gPSByZXBseS5sZW5ndGgKICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCA1MDApKQogICAgcmV0dXJuIGdldF9ib3RfcmVwbHkoKQogIH0KCiAgcmVwbHlfbGVuID0gLTEKICBjb25zb2xlLmxvZygiYm90OiAiICsgcmVwbHkpCiAgcmV0dXJuIHJlcGx5Cn0KCmFzeW5jIGZ1bmN0aW9uIHNlbmRfdG9fYm90KG1zZyl7CiAgY29uc29sZS5sb2coInVzZXI6ICIgKyBtc2cpCiAgbXNnX2NvdW50ID0gYXdhaXQgcGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKS5jb3VudCgpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCd0ZXh0YXJlYScpLmZpcnN0KCkuZmlsbChtc2cpCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCdmb3JtIGJ1dHRvbicpLmNsaWNrKCkKCiAgYXdhaXQgZXhwZWN0KHBhZ2UubG9jYXRvcignLnJhdy1odG1sJykpLnRvSGF2ZUNvdW50KG1zZ19jb3VudCArIDIpCn0KCmFzeW5jIGZ1bmN0aW9uIGNvbm5lY3RfdG9fcmVsYXkoKXsKICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KCJ3c3M6Ly9ub3MubG9sIikKCiAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKXsKICAgICAgcmVzb2x2ZSgpCiAgICB9CgogICAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coInNvY2tldCBlcnJvciIpCiAgICB9CiAgfSkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF9ub3RlKHJlcGx5X3RvX2V2dCwgbXNnKXsKICBsZXQgZXZ0ID0gZmluYWxpemVFdmVudCh7CiAgICBraW5kOiAxLAogICAgY3JlYXRlZF9hdDogcGFyc2VJbnQoRGF0ZS5ub3coKSAvIDEwMDAsIDEwKSwKICAgIHRhZ3M6IFsKICAgICAgWyJlIiwgcmVwbHlfdG9fZXZ0LmlkXSwKICAgICAgWyJwIiwgcmVwbHlfdG9fZXZ0LnB1YmtleV0KICAgIF0sCiAgICBjb250ZW50OiBtc2csCiAgfSwgc2spCgogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coZS5kYXRhKQogICAgICBjb25zdCBub3RlX2lkID0gbmlwMTkubm90ZUVuY29kZShldnQuaWQpCiAgICAgIGNvbnNvbGUubG9nKCJodHRwczovL2NvcmFjbGUuc29jaWFsLyIgKyBub3RlX2lkKQoKICAgICAgcmVzb2x2ZSgpCiAgICB9CgogICAgY29uc3Qgbm90ZV9pZCA9IG5pcDE5Lm5vdGVFbmNvZGUoZXZ0LmlkKQogICAgY29uc29sZS5sb2coInNlbmQgbm90ZSIsIG5vdGVfaWQpCgogICAgc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoWyJFVkVOVCIsIGV2dF0pKQogIH0pCn0KCmFzeW5jIGZ1bmN0aW9uIGdldF9ldmVudChldnRfaWQpewogIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZSl7CiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZGF0YSkKICAgICAgY29uc29sZS5sb2coImUuZGF0YSIsIGUuZGF0YSkKCiAgICAgIGlmKGRhdGFbMF0gPT0gIkVWRU5UIil7CiAgICAgICAgcmVzb2x2ZShkYXRhWzJdKQogICAgICB9ZWxzZXsKICAgICAgICByZWplY3QoImNvdWxkIG5vdCBnZXQgbm90ZSIpCiAgICAgIH0KICAgIH0KCiAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShbIlJFUSIsICJxIiwgeyJpZHMiOiBbZXZ0X2lkXX1dKSkKICB9KQp9Cgpjb25zdCBicm93c2VyID0gYXdhaXQgZmlyZWZveC5sYXVuY2goKQpjb25zdCBjb250ZXh0ID0gYXdhaXQgYnJvd3Nlci5uZXdDb250ZXh0KCk7CmNvbnN0IHBhZ2UgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTsKCmNvbnNvbGUubG9nKCJpbml0IGxsbSIpCmF3YWl0IHBhZ2UuZ290bygnaHR0cHM6Ly9kZWVwaW5mcmEuY29tL2NoYXQnKTsKCndoaWxlKHRydWUpewogIGNvbnN0IG5vdGVfaWRzID0gcmVhZEZpbGVTeW5jKCJib3Rfbm90ZV9pZCIsICJ1dGYtOCIpLnRyaW0oKS5zcGxpdCgiXG4iKQoKICB3cml0ZUZpbGVTeW5jKCJib3Rfbm90ZV9pZCIsICIiKQoKICBmb3IobGV0IG5vdGVfaWQgb2Ygbm90ZV9pZHMpewogICAgaWYobm90ZV9pZC5sZW5ndGggPiAwKXsKICAgICAgY29uc29sZS5sb2coImdvdCBub3RlIGlkOiAiICsgbm90ZV9pZCkKICAgICAgY29uc3QgZXZ0X2RhdGEgPSBuaXAxOS5kZWNvZGUobm90ZV9pZCkuZGF0YQogICAgICBjb25zdCByZXBseV90b19ldnRfaWQgPSAodHlwZW9mIGV2dF9kYXRhID09ICJvYmplY3QiICYmIGV2dF9kYXRhLmlkIHx8IGV2dF9kYXRhKQoKICAgICAgY29uc29sZS5sb2coInJlcGx5X3RvX2V2dF9pZCIsIHJlcGx5X3RvX2V2dF9pZCkKICAgICAgY29uc29sZS5sb2coImNvbm5lY3QgdG8gcmVsYXkiKQogICAgICBhd2FpdCBjb25uZWN0X3RvX3JlbGF5KCkKCiAgICAgIHRyeXsKICAgICAgICBjb25zdCBldnQgPSBhd2FpdCBnZXRfZXZlbnQocmVwbHlfdG9fZXZ0X2lkKQoKICAgICAgICBhd2FpdCBzZW5kX3RvX2JvdChldnQuY29udGVudCkKCiAgICAgICAgY29uc3QgYm90X3JlcGx5ID0gYXdhaXQgZ2V0X2JvdF9yZXBseSgpCiAgICAgICAgYXdhaXQgc2VuZF9ub3RlKGV2dCwgYm90X3JlcGx5KQogICAgICAgIGNvbnNvbGUubG9nKCJjbG9zZSBzb2NrZXQiKQogICAgICB9Y2F0Y2goZSl7CiAgICAgICAgY29uc29sZS5sb2coImVyciIsIGUpCiAgICAgIH0KICAgICAgc29ja2V0LmNsb3NlKCkKICAgIH0KCiAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTAwMCkpCiAgfQp9Cgphd2FpdCBicm93c2VyLmNsb3NlKCk7Cg==

this bot uses browser automation to route llm messages to nostr

bot.mjs

data:text/plain;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMW15ZnVwenpuM2xhNHVrd2VlYTBhdzluemZmOXFjamRzM3R5ZjA4dmZwbmhmNDBkazAwNnMwa3o3bGwiID4+IGJvdF9ub3RlX2lkCiovCgppbXBvcnQgeyBmaXJlZm94LCBleHBlY3QgfSBmcm9tICdAcGxheXdyaWdodC90ZXN0JzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAiZnMiCmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gIndzIgppbXBvcnQgeyBmaW5hbGl6ZUV2ZW50LCBnZW5lcmF0ZVNlY3JldEtleSwgbmlwMTkgfSBmcm9tICdub3N0ci10b29scycKCmxldCBtc2dfY291bnQgPSAwCmxldCByZXBseV9sZW4gPSAtMQpsZXQgc29ja2V0ID0gbnVsbApsZXQgc2sgPSBnZW5lcmF0ZVNlY3JldEtleSgpCgphc3luYyBmdW5jdGlvbiBnZXRfYm90X3JlcGx5KCl7CiAgY29uc3QgcmVwbHkgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmxhc3QoKS5pbm5lclRleHQoKQoKICBpZihyZXBseS5sZW5ndGggIT0gcmVwbHlfbGVuKXsKICAgIC8vIHN0aWxsIGdlbmVyYXRpbmcKICAgIHJlcGx5X2xlbiA9IHJlcGx5Lmxlbmd0aAogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwMCkpCiAgICByZXR1cm4gZ2V0X2JvdF9yZXBseSgpCiAgfQoKICByZXBseV9sZW4gPSAtMQogIGNvbnNvbGUubG9nKCJib3Q6ICIgKyByZXBseSkKICByZXR1cm4gcmVwbHkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF90b19ib3QobXNnKXsKICBjb25zb2xlLmxvZygidXNlcjogIiArIG1zZykKICBtc2dfY291bnQgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmNvdW50KCkKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ3RleHRhcmVhJykuZmlyc3QoKS5maWxsKG1zZykKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ2Zvcm0gYnV0dG9uJykuY2xpY2soKQoKICBhd2FpdCBleHBlY3QocGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKSkudG9IYXZlQ291bnQobXNnX2NvdW50ICsgMikKfQoKYXN5bmMgZnVuY3Rpb24gY29ubmVjdF90b19yZWxheSgpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzczovL25vcy5sb2wiKQoKICAgIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpewogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBzb2NrZXQub25lcnJvciA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zb2xlLmxvZygic29ja2V0IGVycm9yIikKICAgIH0KICB9KQp9Cgphc3luYyBmdW5jdGlvbiBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBtc2cpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coZS5kYXRhKQogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBsZXQgZXZ0ID0gZmluYWxpemVFdmVudCh7CiAgICAgIGtpbmQ6IDEsCiAgICAgIGNyZWF0ZWRfYXQ6IHBhcnNlSW50KERhdGUubm93KCkgLyAxMDAwLCAxMCksCiAgICAgIHRhZ3M6IFsKICAgICAgICBbImUiLCByZXBseV90b19ldnRfaWRdCiAgICAgIF0sCiAgICAgIGNvbnRlbnQ6IG1zZywKICAgIH0sIHNrKQoKICAgIGNvbnN0IG5vdGVfaWQgPSBuaXAxOS5ub3RlRW5jb2RlKGV2dC5pZCkKICAgIGNvbnNvbGUubG9nKCJzZW5kIG5vdGUiLCBub3RlX2lkKQoKICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFsiRVZFTlQiLCBldnRdKSkKICB9KQp9Cgphc3luYyBmdW5jdGlvbiBnZXRfZXZlbnQoZXZ0X2lkKXsKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShlLmRhdGEpCiAgICAgIGNvbnNvbGUubG9nKCJlLmRhdGEiLCBlLmRhdGEpCgogICAgICBpZihkYXRhWzBdID09ICJFVkVOVCIpewogICAgICAgIHJlc29sdmUoZGF0YVsyXSkKICAgICAgfWVsc2V7CiAgICAgICAgcmVqZWN0KCJjb3VsZCBub3QgZ2V0IG5vdGUiKQogICAgICB9CiAgICB9CgogICAgc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoWyJSRVEiLCAicSIsIHsiaWRzIjogW2V2dF9pZF19XSkpCiAgfSkKfQoKY29uc3QgYnJvd3NlciA9IGF3YWl0IGZpcmVmb3gubGF1bmNoKCkKY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCgpOwpjb25zdCBwYWdlID0gYXdhaXQgY29udGV4dC5uZXdQYWdlKCk7Cgpjb25zb2xlLmxvZygiaW5pdCBsbG0iKQphd2FpdCBwYWdlLmdvdG8oJ2h0dHBzOi8vZGVlcGluZnJhLmNvbS9jaGF0Jyk7Cgp3aGlsZSh0cnVlKXsKICBjb25zdCBub3RlX2lkcyA9IHJlYWRGaWxlU3luYygiYm90X25vdGVfaWQiLCAidXRmLTgiKS50cmltKCkuc3BsaXQoIlxuIikKCiAgd3JpdGVGaWxlU3luYygiYm90X25vdGVfaWQiLCAiIikKCiAgZm9yKGxldCBub3RlX2lkIG9mIG5vdGVfaWRzKXsKICAgIGlmKG5vdGVfaWQubGVuZ3RoID4gMCl7CiAgICAgIGNvbnNvbGUubG9nKCJnb3Qgbm90ZSBpZDogIiArIG5vdGVfaWQpCiAgICAgIGNvbnN0IHJlcGx5X3RvX2V2dF9pZCA9IG5pcDE5LmRlY29kZShub3RlX2lkKS5kYXRhCgogICAgICBjb25zb2xlLmxvZygiY29ubmVjdCB0byByZWxheSIpCiAgICAgIGF3YWl0IGNvbm5lY3RfdG9fcmVsYXkoKQoKICAgICAgdHJ5ewogICAgICAgIGNvbnN0IGV2dCA9IGF3YWl0IGdldF9ldmVudChyZXBseV90b19ldnRfaWQpCgogICAgICAgIGF3YWl0IHNlbmRfdG9fYm90KGV2dC5jb250ZW50KQoKICAgICAgICBjb25zdCBib3RfcmVwbHkgPSBhd2FpdCBnZXRfYm90X3JlcGx5KCkKICAgICAgICBhd2FpdCBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBib3RfcmVwbHkpCiAgICAgICAgY29uc29sZS5sb2coImNsb3NlIHNvY2tldCIpCiAgICAgIH1jYXRjaChlKXsKICAgICAgICBjb25zb2xlLmxvZygiZXJyIiwgZSkKICAgICAgfQogICAgICBzb2NrZXQuY2xvc2UoKQogICAgfQoKICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMDAwKSkKICB9Cn0KCmF3YWl0IGJyb3dzZXIuY2xvc2UoKTsK

data:text/plain;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMW15ZnVwenpuM2xhNHVrd2VlYTBhdzluemZmOXFjamRzM3R5ZjA4dmZwbmhmNDBkazAwNnMwa3o3bGwiID4+IGJvdF9ub3RlX2lkCiovCgppbXBvcnQgeyBmaXJlZm94LCBleHBlY3QgfSBmcm9tICdAcGxheXdyaWdodC90ZXN0JzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAiZnMiCmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gIndzIgppbXBvcnQgeyBmaW5hbGl6ZUV2ZW50LCBnZW5lcmF0ZVNlY3JldEtleSwgbmlwMTkgfSBmcm9tICdub3N0ci10b29scycKCmxldCBtc2dfY291bnQgPSAwCmxldCByZXBseV9sZW4gPSAtMQpsZXQgc29ja2V0ID0gbnVsbApsZXQgc2sgPSBnZW5lcmF0ZVNlY3JldEtleSgpCgphc3luYyBmdW5jdGlvbiBnZXRfYm90X3JlcGx5KCl7CiAgY29uc3QgcmVwbHkgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmxhc3QoKS5pbm5lclRleHQoKQoKICBpZihyZXBseS5sZW5ndGggIT0gcmVwbHlfbGVuKXsKICAgIC8vIHN0aWxsIGdlbmVyYXRpbmcKICAgIHJlcGx5X2xlbiA9IHJlcGx5Lmxlbmd0aAogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwMCkpCiAgICByZXR1cm4gZ2V0X2JvdF9yZXBseSgpCiAgfQoKICByZXBseV9sZW4gPSAtMQogIGNvbnNvbGUubG9nKCJib3Q6ICIgKyByZXBseSkKICByZXR1cm4gcmVwbHkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF90b19ib3QobXNnKXsKICBjb25zb2xlLmxvZygidXNlcjogIiArIG1zZykKICBtc2dfY291bnQgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmNvdW50KCkKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ3RleHRhcmVhJykuZmlyc3QoKS5maWxsKG1zZykKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ2Zvcm0gYnV0dG9uJykuY2xpY2soKQoKICBhd2FpdCBleHBlY3QocGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKSkudG9IYXZlQ291bnQobXNnX2NvdW50ICsgMikKfQoKYXN5bmMgZnVuY3Rpb24gY29ubmVjdF90b19yZWxheSgpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzczovL25vcy5sb2wiKQoKICAgIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpewogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBzb2NrZXQub25lcnJvciA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zb2xlLmxvZygic29ja2V0IGVycm9yIikKICAgIH0KICB9KQp9Cgphc3luYyBmdW5jdGlvbiBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBtc2cpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coZS5kYXRhKQogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBsZXQgZXZ0ID0gZmluYWxpemVFdmVudCh7CiAgICAgIGtpbmQ6IDEsCiAgICAgIGNyZWF0ZWRfYXQ6IHBhcnNlSW50KERhdGUubm93KCkgLyAxMDAwLCAxMCksCiAgICAgIHRhZ3M6IFsKICAgICAgICBbImUiLCByZXBseV90b19ldnRfaWRdCiAgICAgIF0sCiAgICAgIGNvbnRlbnQ6IG1zZywKICAgIH0sIHNrKQoKICAgIGNvbnN0IG5vdGVfaWQgPSBuaXAxOS5ub3RlRW5jb2RlKGV2dC5pZCkKICAgIGNvbnNvbGUubG9nKCJzZW5kIG5vdGUiLCBub3RlX2lkKQoKICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFsiRVZFTlQiLCBldnRdKSkKICB9KQp9Cgphc3luYyBmdW5jdGlvbiBnZXRfZXZlbnQoZXZ0X2lkKXsKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShlLmRhdGEpCiAgICAgIGNvbnNvbGUubG9nKCJlLmRhdGEiLCBlLmRhdGEpCgogICAgICBpZihkYXRhWzBdID09ICJFVkVOVCIpewogICAgICAgIHJlc29sdmUoZGF0YVsyXSkKICAgICAgfWVsc2V7CiAgICAgICAgcmVqZWN0KCJjb3VsZCBub3QgZ2V0IG5vdGUiKQogICAgICB9CiAgICB9CgogICAgc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoWyJSRVEiLCAicSIsIHsiaWRzIjogW2V2dF9pZF19XSkpCiAgfSkKfQoKY29uc3QgYnJvd3NlciA9IGF3YWl0IGZpcmVmb3gubGF1bmNoKCkKY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCgpOwpjb25zdCBwYWdlID0gYXdhaXQgY29udGV4dC5uZXdQYWdlKCk7Cgpjb25zb2xlLmxvZygiaW5pdCBsbG0iKQphd2FpdCBwYWdlLmdvdG8oJ2h0dHBzOi8vZGVlcGluZnJhLmNvbS9jaGF0Jyk7Cgp3aGlsZSh0cnVlKXsKICBjb25zdCBub3RlX2lkcyA9IHJlYWRGaWxlU3luYygiYm90X25vdGVfaWQiLCAidXRmLTgiKS50cmltKCkuc3BsaXQoIlxuIikKCiAgd3JpdGVGaWxlU3luYygiYm90X25vdGVfaWQiLCAiIikKCiAgZm9yKGxldCBub3RlX2lkIG9mIG5vdGVfaWRzKXsKICAgIGlmKG5vdGVfaWQubGVuZ3RoID4gMCl7CiAgICAgIGNvbnNvbGUubG9nKCJnb3Qgbm90ZSBpZDogIiArIG5vdGVfaWQpCiAgICAgIGNvbnN0IHJlcGx5X3RvX2V2dF9pZCA9IG5pcDE5LmRlY29kZShub3RlX2lkKS5kYXRhCgogICAgICBjb25zb2xlLmxvZygiY29ubmVjdCB0byByZWxheSIpCiAgICAgIGF3YWl0IGNvbm5lY3RfdG9fcmVsYXkoKQoKICAgICAgdHJ5ewogICAgICAgIGNvbnN0IGV2dCA9IGF3YWl0IGdldF9ldmVudChyZXBseV90b19ldnRfaWQpCgogICAgICAgIGF3YWl0IHNlbmRfdG9fYm90KGV2dC5jb250ZW50KQoKICAgICAgICBjb25zdCBib3RfcmVwbHkgPSBhd2FpdCBnZXRfYm90X3JlcGx5KCkKICAgICAgICBhd2FpdCBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBib3RfcmVwbHkpCiAgICAgICAgY29uc29sZS5sb2coImNsb3NlIHNvY2tldCIpCiAgICAgIH1jYXRjaChlKXsKICAgICAgICBjb25zb2xlLmxvZygiZXJyIiwgZSkKICAgICAgfQogICAgICBzb2NrZXQuY2xvc2UoKQogICAgfQoKICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMDAwKSkKICB9Cn0KCmF3YWl0IGJyb3dzZXIuY2xvc2UoKTsK