Files
2026-03-19 14:00:00 +09:00

1 line
9.4 KiB
HTML

7ZqM66as7J2066mU7J246rO8IOusuOyEnCDsnKDtmJUg7Jyg7ZiVID09PT09CmxldCBpbnB1dENvbnRlbnQgPSAnJzsKdmFyIGdlbmVyYXRlZEhUTUwgPSAnJzsKdmFyIGN1cnJlbnREb2NUeXBlID0gJ2JyaWVmaW5nJzsKbGV0IGN1cnJlbnRXcml0ZU1vZGUgPSAncmVzdHJ1Y3R1cmUnOwpsZXQgY3VycmVudFpvb20gPSAxMDA7CmxldCB1cGxvYWRlZEZpbGVzID0gW107CmxldCByZWZlcmVuY2VMaW5rcyA9IFtdOwpsZXQgY3VycmVudFRlbXBsYXRlID0gJ2RlZmF1bHQnOwpsZXQgdGVtcGxhdGVFbGVtZW50cyA9IHt9OwpsZXQgYW5hbHlzaXNSZXN1bHQgPSBudWxsOwoKLy8gPT09PT0g66y47IScIOycoO2YlSDrjIDthZTrvYAgPT09PT0KbGV0IGRvY1R5cGVzID0gW107ICAgICAgICAgICAvLyDsoITstpwg66y47IScIOycoO2YlSAoZGVmYXVsdCArIHVzZXIpCmxldCBzZWxlY3RlZERvY1R5cGVGaWxlID0gbnVsbDsKCi8vID09PT09IO2FnO2UjOumvyDqtIDroKggPT09PT0KbGV0IHVzZXJUZW1wbGF0ZXMgPSBbXTsKbGV0IHNlbGVjdGVkVGVtcGxhdGVGaWxlID0gbnVsbDsKCi8vID09PT09IEFJIOu2gOu2hCDsiJjsoJUgPT09PT0KbGV0IHNlbGVjdGVkVGV4dCA9ICcnOwpsZXQgc2VsZWN0ZWRSYW5nZSA9IG51bGw7CgoKLy8gPT09PT0g7Zmc7JqpIOuylOychCDshKDtg50gPT09PT0KZnVuY3Rpb24gc2VsZWN0V3JpdGVNb2RlKG1vZGUpIHsKICAgIGN1cnJlbnRXcml0ZU1vZGUgPSBtb2RlOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLndyaXRlLW1vZGUtdGFiJykuZm9yRWFjaCh0YWIgPT4gewogICAgICAgIGNvbnN0IHJhZGlvID0gdGFiLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9InJhZGlvIl0nKTsKICAgICAgICBpZiAocmFkaW8gJiYgcmFkaW8udmFsdWUgPT09IG1vZGUpIHsKICAgICAgICAgICAgdGFiLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICAgICAgICAgIHJhZGlvLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRhYi5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpOwogICAgICAgIH0KICAgIH0pOwogICAgdXBkYXRlRG9tYWluU2VjdGlvblZpc2liaWxpdHkoKTsKfQoKZnVuY3Rpb24gdXBkYXRlRG9tYWluU2VjdGlvblZpc2liaWxpdHkoKSB7CiAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvbWFpblNlY3Rpb24nKTsKICAgIGlmICghc2VjdGlvbikgcmV0dXJuOwogICAgY29uc3QgaGFzRm9sZGVyID0gdXBsb2FkZWRGaWxlcyAmJiB1cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDA7CiAgICBjb25zdCBoYXNMaW5rcyA9IHJlZmVyZW5jZUxpbmtzICYmIHJlZmVyZW5jZUxpbmtzLmxlbmd0aCA+IDA7CiAgICBzZWN0aW9uLnN0eWxlLmRpc3BsYXkgPSAoaGFzRm9sZGVyIHx8IGhhc0xpbmtzKSA/ICdibG9jaycgOiAnbm9uZSc7Cn0KCmxldCBwZW5kaW5nVXBsb2FkRmlsZXMgPSBbXTsKCmZ1bmN0aW9uIG9wZW5VcGxvYWRNb2RhbCgpIHsKICAgIHBlbmRpbmdVcGxvYWRGaWxlcyB9IFtdOwogICAgcmVuZGVyUGVuZGluZ0ZpbGVMaXN0KCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkDb25maXJtQnRuJykuZGlzYWJsZWQgPSB0cnVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZE1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICfmbGV4JzsKfQpmdW5jdGlvbiBjbG9zZVVwbG9hZE1vZGFsKCkgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZE1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKfQpmdW5jdGlvbiBoYW5kbGVVcGxvYWRGaWxlcyhmaWxlcykgewogICAgZm9yIChjb25zdCBmIG9mIGZpbGVzKSBwZW5kaW5nVXBsb2FkRmlsZXMucHVzaChmKTsKICAgIHJlbmRlclBlbmRpbmdGaWxlTGlzdCgpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZENvbmZpcm1CdG4nKS5kaXNhYmxlZCA9IHBlbmRpbmdVcGxvYWRGaWxlcy5sZW5ndGggPT09IDA7Cn0KZnVuY3Rpb24gaGFuZGxlVXBsb2FkRHJvcChlKSB7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkRHJvcHpvbmUnKS5zdHlsZS5ib3JkZXJDb2xvcj0ndmFyKC0tdWktYm9yZGVyKSc7CiAgICBoYW5kbGVVcGxvYWRGaWxlcyhlLmRhdGFUcmFuc2Zlci5maWxlcyk7Cn0KZnVuY3Rpb24gcmVuZGVyUGVuZGluZ0ZpbGVMaXN0KCkgewogICAgY29uc3QgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZEZpbGVMaXN0Jyk7CiAgICBpZiAocGVuZGluZ1VwbG9hZEZpbGVzLmxlbmd0aCA9PT0gMCkgeyBib3guaW5uZXJIVE1MID0gJyc7IHJldHVybjsgfQogICAgYm94LmlubmVySFRNTCA9IHBlbmRpbmdVcGxvYWRGaWxlcy5tYXAoKGYsIGkpID0+CiAgICAgICAgYGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDhweDtiYWNrZ3JvdW5kOnZhcigtLXVpLXN1cmZhY2UpO2JvcmRlci1yYWRpdXM6NnB4O21hcmdpbi1ib3R0b206NHB4O2ZvbnQtc2l6ZToxMnB4OyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmbGV4OjE7Y29sb3I6dmFyKC0tdWktdGV4dCk7Ij7wn5OEICR7Zi5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXVpLWRpbSk7Ij4keyhmLnNpemUvMTAyNCkudG9GaXhlZCgwKX1LQjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImN1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLXVpLWRpbSk7IiBvbmNsaWNrPSJyZW1vdmVQZW5kaW5nRmlsZSgke2l9KSI+4pyVPC9zcGFuPgogICAgICAgIDwvZGl2PmAKICAgICkuam9pbignJyk7Cn0KZnVuY3Rpb24gcmVtb3ZlUGVuZGluZ0ZpbGUoaSkgewogICAgcGVuZGluZ1VwbG9hZEZpbGVzLnNwbGljZShpLCAxKTsKICAgIHJlbmRlclBlbmRpbmdGaWxlTGlzdCgpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZENvbmZpcm1CdG4nKS5kaXNhYmxlZCA9IHBlbmRpbmdVcGxvYWRGaWxlcy5sZW5ndGggPT09IDA7Cn0KZnVuY3Rpb24gY29uZmlybVVwbG9hZCgpIHsKICAgIHVwbG9hZGVkRmlsZXMgPSBbLi4ucGVuZGluZ1VwbG9hZEZpbGVzXTsKICAgIGNsb3NlVXBsb2FkTW9kYWwoKTsKICAgIGNvbnN0IGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9sZGVyUGF0aERpc3BsYXknKTsKICAgIGRpc3BsYXkudGV4dENvbnRlbnQgPSBgJHt1cGxvYWRlZEZpbGVzLmxlbmd0aH3qsJwg7YyM7J28IOyXheuhnOuTnOuQqGA7CiAgICBkaXNwbGF5LmNsYXNzTGlzdC5yZW1vdmUoJ2VtcHR5Jyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxDb3VudCcpLnRleHRDb250ZW50ID0gdXBsb2FkZWRGaWxlcy5sZW5ndGggKyAn6rCcJzsKICAgIGNvbnN0IG9rRXh0cyA9IFsnLnBkZicsJy5kb2N4JywnLmRvYycsJy54bHN4JywnLnhscycsJy5wcHR4JywnLnBwdCcsJy50eHQnXTsKICAgIGNvbnN0IG9rRmlsZXMgPSB1cGxvYWRlZEZpbGVzLmZpbHRlcihmID0+IG9rRXh0cy5zb21lKGUgPT4gZi5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZSkpKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvayDb3VudCcpLnRleHRDb250ZW50ID0gb2tGaWxlcy5sZW5ndGggKyAn6rCcIOKckyc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93bkNvdW50JykudGV4dENvbnRlbnQgPSAodXBsb2FkZWRGaWxlcy5sZW5ndGggLSBvayRpbGVzLmxlbmd0aCkgKyAn6rCcJzsKICAgIHVwZGF0ZURvbWFpblNlY3Rpb25WaXNpYmlsaXR5KCk7CiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgHVByb2FkZWRGaWxlcy5mb3JFYWNoKGYgPT4gZm9ybWF0YS5hcHBlbmQoJ2ZpbGVzJywgZikpOwogICAgZmV0Y2goJy9hcGkvdXBsb2FkLWZpbGVzJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogZm9ybWF0YSB9KQogICAgICAgIC50aGVuKHIgPT4gci5qc29uKCkpCiAgICAgICAgLnRoZW4oZGF0YSA9PiB7CiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5fc2Vzc2lvbklkID0gZGF0YS5zZXNzaW9uX2lkOwogICAgICAgICAgICAgICAgd2luZG93Ll9pbnB1dERpciA9IGRhdGEuaW5wdXRfZGlyOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2VuZXJhdGVCdG4nKS5kaXNhYmxlZCA9IGZhbHNlOwp9CgoKCi8vID09PT09IOyNqOuHkOydvCDthZztlIzrpr8gPT09PT0KY29uc3QgdGh1bWJuYWlsVGVtcGxhdGVzID0gewogICAgYnJpZWZpbmc6IGAKICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXRpdGxlIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1sZWFkIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib2R5Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib3R0b20iPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2UiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2UtYXR0YWNoIj7ssqjrtoA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib2R5Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib2R5Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib3R0b20iPjwvZGl2PgogICAgICAgIDwvZGl2PmAKICAgICwKICAgIHJlcG9ydDogYAogICAgICAgIDxkaXYgY2xhc3M9ImxpbmUgaDEiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpbmUgYm9keSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGluZSBib2R5IiBzdHlsZT0id2lkdGg6OTAlIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIGgyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIGJvZHkiIHN0eWxlPSJ3aWR0aDo4NSUiPjwvZGl2PmAKICAgICwKICAgIHBwdDogYAogICAgICAgIDxkaXYgY2xhc3M9InNsaWRlIj48ZGl2IGNsYXNzPSJslGlkZS10aXRsZSI+VElUTEU8L2Rpdj48ZGl2IGNsYXNzPSJslGlkZS1ib2R5Ij48L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJslGlkZSj48ZGl2IGNsYXNzPSJslGlkZS10aXRsZSI+Q09OVEVOVDwvZGl2PjxkaXYgY2xhc3M9InNsaWRlLWJvZHkiPjwvZGl2PjwvZGl2PmAKICAgICwKICAgIGN1c3RvbTogYAogICAgICAgIDxkaXYgY2xhc3M9ImxpbmUgaDEiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpbmUgYm9keSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGluZSBoMiI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibGluZSBib2R5Ij48L2Rpdj4KICAgIGAKfTsKCi8vID09PT09IOy0i6riw7ZmUID09PT09CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAgIHNldFN0YXR1cygn66Zve6nyIOykgLi4uJywgZmFsc2UpOwogICAgCiAgICBpZiAodHlwZW9mIGxvYWREb2NUeXBlcyA9PT0gJ2Z1bmN0aW9uJykgbG9hZERvY1R5cGVzKCk7CiAgICBpZiAodHlwZW9mIGxvYWRVc2VyVGVtcGxhdGVzID09PSAnZnVuY3Rpb24nKSBsb2FkVXNlclRlbXBsYXRlcygpOwogICAgCiAgICAvLyDrk5zroa3sobQg7J2067Kk7Yq4CiAgICBjb25zdCBkcm9wem9uZXMgPSBbJ3RlbXBsYXRlRHJvcHpvbmUnLCAnZG9jVHlwZURyb3B6b25lJ107CiAgICBkcm9wem9uZXMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgY29uc3QgZHJvcHpvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgICAgaWYgKGRyb3B6b25lKSB7CiAgICAgICAgICAgIFsnZHJhZ2VudGVyJywgJ2RyYWdvdmVyJywgJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaChldmVudE5hbWUgPT4gewogICAgICAgICAgICAgICAgZHJvcHpvbmUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIFsnZHJhZ2VudGVyJywgJ2RyYWdvdmVyJ10uZm9yRWFjaChldmVudE5hbWUgPT4gewogICAgICAgICAgICAgICAgZHJvcHpvbmUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsICgpID0+IGRyb3B6b25lLmNsYXNzTGlzdC5hZGQoJ2RyYWdvdmVyJykpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgWydkcmFnbGVhdmUnLCAnZHJvcCddLmZvRWFjaChldmVudE5hbWUgPT4gewogICAgICAgICAgICAgICAgZHJvcHpvbmUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsICgpID0+IGRyb3B6b25lLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdvdmVyJykpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gdGVtcGxhdGVOYW1lSW5wdXQg7J6F66ClIOydtOuypO2KuAogICAgY29uc3QgdGVtcGxhdGVOYW1lSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGVOYW1lSW5wdXQnKTsKICAgIGlmICh0ZW1wbGF0ZU5hbWVJbnB1dCkgewogICAgICAgIGlmICh0eXBlb2YgdXBkYXRlVGVtcGxhdGVTdWJtaXRCdG4gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgdGVtcGxhdGVOYW1lSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB1cGRhdGVUZW1wbGF0ZVN1Ym1pdEJ0bik7CiAgICAgICAgfQogICAgfQogICAgCiAgICBzZXRTdGF0dXMoJ3spIDruYTrkKgnLCB0cnVlKTsKfSk7CgovLyBFbnRlciBrZXkg7YKk66GcIO2UvOuTnOuwsSDsoJzstpwKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZlZWRiYWNrSW5wdXQnKS5hZGRFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsIGZ1bmN0aW9uKGUpIHsKICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykgewogICAgICAgIHN1Ym1pdEZlZWRiYWNrKCk7CiAgICB9Cn0pOwo=