▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▓▒▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▒▒▒▒▒▒▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▒▒▒▒▒▒▒▒▓▓▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▒▒▒▒▒▒▒▓▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▒▒▒▒▒▒▒▓▒▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒█▒▒▒▒▒▒▒▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▓▓▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒█▓▓▓█▒████▒▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▒▒▓▒▒▓█▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓░░░░░░░░░░░░▒█▓▓▓▓▓▓▓▓█▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒█▓▓▒▒▓▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒█░░▓▓▓▓▓█░░░░░░░░░█▓▓▓▓▓▓▓▓▓▓██▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓█▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█░░░░▒▓▓▓▓▓█░█░░░░▒▓▓▓▓▓▓▓▓█░░░░▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▒▓▒▒▓▓▓▓▓▓▒▒▒▒█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░▓▓▓▓▓████░░▓▓▓▓▓▓█░░░░░░░░░░█▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▒▒▒▒▒▒▓▒▓▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▓▒▓▓▓▓▓▒▓▒▒▓▓▓▓▓▓█░░░░░░░░░██▓▓▓▓█████▓▓▓▓█░░░░░░░░░░░░░░░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▓▒▒▓▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓░░░░░░░██████▓▓▓▓███▓▓████████░░░░░░░░░░░░▒▓▒▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█░░░░░░██████████▓▓██▓▓███████████░░░░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓ ▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▓▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░█████▓██░▓▓▓▓▓██▓▓▓▓▓▓▓████████░░░░░░░░░░░█░░▒▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█░░░░▓████▓▓░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓███▓█░░░░░░░░░░█░░▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░███▓▓▓░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▓▓▓▓▓▓███░░░░░░░░▒▒░░▓▓▓▓▓▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░██▓▓▓░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░▓▓▓▓▓▓▓█▓░░░░░░▒▒▒░░▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒░█▓▓▓▓░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░▓▓▓▓▓▓▓▓▓░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒█▓▓▓░░░░▓▓▓▓▓▓██▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░▓▓░▓▓▓▓▓█░▒▒▒▒▒▒█▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒█▒▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▒▒░▒░░▒░░▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▓▓▓░░░░▓▓▓▓▓▓░░░▓▓▓▓▓█▓▓▓░▓▓▓▓█░░▓▓▓▓▓▓▓▓▓█▒▒▒▒▒▒█▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▓▒▒▒▒▒░░░░░░░░░░░░░█▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█▓▓▓░░░░▓▓▓▒▓█░░░░█▓▓▓▓▒▓▓▓▓▓▓▓▓█░░░▓▓▓▓░██░░█▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒░▒░░░░░░░░░░░▒▒▒▒▒░░░░░░░░░░░░░░░▒▒▓▒▒█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█▓▓▓░░░░▒▓▓▒▓█░░░░░░▓▓▓▓▓▒▓▓▓▓▓▓▓▓░░░▓▓▓▓██░███▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒░░░░░░░░░░░░░░░█▒▒▒▓█░░░░░░░░░░░░░░░▓▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓░░░░░▓▓░░░░░░░░░░░▓▓▓███▓▓▓▓▓░▓░░░░▓▓█▓██▓▒▓█▒▒█▒▒▒▒▒▒▒▒▒▒ ░░░░░░░░░░░░░░░░░▒▒▒▒▒░░░░░░░░░░░░░░░░▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓█▒░░░░▓▓░█░░░░░░░░░░░▓▓▓▓░█▓█▓▓▓░░░░░▓▓▓▓▓▓░░▓█▒█░░░█▓▒▒▒▒▒▒ ░░░░░░░░░░░░░░░░█▒▒▒▒▒░░░░░░░░░░░░░░░░░▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░█▓▓▓░░░░░▓░█░░░░░░░░░░░░░▓▓▓▓░█▓▓▓▓░░░░░▒▓▓▓▓█ █▓░░█ ▒░░░░░ ░░░░░░░░░░░░░░░░▒▒▒▒▒█░░░░░░░░░░░░░░░░░▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓█▒░░░░░▓▒░░░░░░░░░░░░░░░░▓▓▓▓░█▓▓▓▓░░░░░▓▓▓▓░ ░█░░ █░░░░░░ ░░░░░░░░░░░░░░░░▒▒▒▒▒░░░░░░░░░░░░░░░░░░█▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░▓█▓▒█░░▓▒████████▓░░░░░░░░░░░▓▓▓▓░█▓▓▓░░░░░▓▓▓█░ ░█░███▒░░░░░░░░ ░░░░░░░░░░░░░░░█▒▒▒▒▒░░░░░░░░░░░░░░░░░░░▒▒▒▒▒█░░░░░░░░░░░░░░░░░░░░░░░░█▓▓█▒█░░░▓░▓▓▓▓▓▓░░░░░░░░░░░████▓██░█▓▓▓░░░░▓▓▓█ █░██▓▓▓▓▓▒░░░░░ ░░░░░░░░░░░░░░░▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▒▒░░░█░░▓▓▓▓▓▓░░░░░░░░░░░░▓▓▓▓█▓▓█▓▓▓░░░░░▓▓░ ░░░▒▓▓▓▓▓▓▓▓█░░░░ ░░░░░░░░░░░░░░░▒▒▒▒▒█░░░░░░░░░░░░░░░░░░░█▒▒▓▒▒░░░░░░░░░░░░░░░░░░░░░░░░▓██▒▒░░░░░░▓▒▒▒▓▒░░░░░░░░░░░░▓▓▓▓▓▓▓▓░░█░░░░░▓▓█ ░█▒▒▓▓▓▓▓▓▓▓░░░░ ░░░░░░░░░░░░░░▓▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░▓▒▒▒▒▒█░░░░░░░░░░░░░░░░░░░░░░░▓█▒▒▓░░░░░░░▒▓▓░░░░░░░░░░░░░░▓▒▒▓▓▓ ░▓██░░░░░▓█▓░░░░░█▓▓▓▓▓▓▓▓░░░░ ░░░░░░░░░░░░░░█▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░░░░░▓█▒▒█░░░░░░░░░░░░░░░░░░░░░░░░░▓▒▒▓░░░░░█░░░░░▓█░▓██░░█▓▓▓▓▓▓▓▓░░░░ ░░░░░░░░░░░░░░█▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░▓▓▒▓█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓░░░░░▓█░█░░░░█▓▓▓▓▓▓▓█░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░▒▒▓▒▒▒ ░░░░░░░░░░░░░ ░░░░░░░░▓▓▒░▒░░░▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█░█░ ░░█▓▓▓▓▓▓▓░░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒░░░░░░░░ ░░░░░░░░░ ░▒▒▒▒▒▒░░░ ░░░░ ░ ░░░░░░░░ ░▓▓█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█░░░░░░█▓▓▓▓▓▓▓░░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒ ░▒▒▒▒▒▒░ ▓▓█░░░░░░█░▓░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░░░░░░█░░░░░░▓▓▓▓▓▓▓█░░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒ ░▒▒▒▒▒▒ ░█▓█░▒░░░░█ ░▒█░░░░░░░░░░░░░░░░░░░░░░░█░░░░░░░█ ░▒▓▓▓▓▓▓▓░░░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒ ░▒▒▒▒▒▒░ █▓█░░░░░░░░░░░▓██▓█░░░░░░░░░░░▓████░░░█░░░░░░░█ ░█▓▓▓▓▓▓█░░░░░░ ░░░░░░░░░░░░░░▒▒▒▒▒▒▒ ▓▒▒▓▒▒▒ █▓█░░░░░░░█░█░▓██░░░░░█░░░░░░████████▒░░░░░░░░█ ░▒▓▓▓▓▓▓░░░░░░░ ░░░░░░░░░░░ ░█▓▒▒▒▒█░ █▒▒▒▒▒▒ ▒█▓▓░░█░░░░░░░░▒░░██░░░░▓░░░░░░░░█▓▓▓█░░░░░░█░░█ █▒▓▓▓▓▓▓░░░░░░░ ░░░░░░░░░░ ▒▒▒▒▒▒▒░ ░▒▒▒▒▒▒█ ░▓█▓▓▓░░░░░░░░░░█░░░░░░░░█░█░░░░░░░███░▒░░░░░█░░▒ ▓▒▓▓▓▓▓█░░░░░░░ ░░░░░░░░░ ░▒▒▒▒▒▓▓░ ░▒▒▒▒▒▒▓ ░▓▓█▓▓▒█░░░░░░█░░░░▒ ░░░░▓█░░█░░░░░█░░█░░░░░█░░▓▒░ ░▒▒▓▓▓▓▓▓░░░░░░░ ░░░░░░░░ ▒▒▒▒▓▒▒█ ░█▒▒▒▓▒▒░ ░▓▓▓▓▓▓▒▒░░░░░█▓▓░░ ░░░░█░░░░░█▓░░█░░░░░▓░░▒█▓░█▒▒▓▓▓▓▓░░░░░░░░ ░░░░░░░ █▒▓▒▒▒▒▓ ░▒▒▒▒▒▒█ █▓▓▓▓▓▓▒█▓▒░░░░ ░█░░ ▒██░░░░▒██▓░░░▒░█ ░░░░░░░█▒░░█▓▓▒█▒▒▓▓▓▓▓█░░░░░░░ ░░░░░░ ░▒▒▒▒▒▒▒▓░ ░░▒▒▒▒▒▒▒░ ░▓▓▓▓▓▓▓▒▒█ ░░░░░░░ ░█▓ ░░░██▓ █ ▓█░░░░█▒▒█▒▓▓█░░▒▒▓▓▓▓▓▓░░░░░░░ ░░░░░ ▒▒▒▒▒▒▓▒▒█ ░█▓▒▒▒▒▒▒▒░ ░█▓▓▓▓▓▓▓▓▒▒░ █░░░░░ ░▒░░░░░█░ █▒ █░█░░░█▒▓▒██▓█░ ░▓▒▓▓▓▓▓▓█░░░░░░ ░░░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒░ ░░▓▓▓▓▓▓▓▓▓▒▒█ ▓█ ░░░░░█░ ░█░▒░▓█░░██▒▒▒█▓█ █▒▓▓▓▓▓█▓█░░░░░ ░░░░ ░█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ░█▓▓▓▓▓▓▓▓▓▒▒▒░ ░░ ░░░░░█░ ░ ░▒░█▒▓▓▓█▓▓░ ░▒▒▓▓▓▓▓▓▓▓░░░░ ░░░ ░▒▓▒▒▒▒▒▒▓▒▒▒▒▒▓░░ ░▓▓▓▓▓▓▓▓▓▓▒▒▒█ ▓░ ░░░░░░░░▒▓ ░ ░░█▒▓▓░█▓▓░ ░█▒▓▓▓▓▓▓▓▓▓█░░ ░░░ ░░▒▒░ ░ ░▓▓▓▓▓▓▓▓▓▓▓▓▒▒░ ░░ ░░░░░░░█░░░ ░░▒░ ░█ █▒▒▓▓▓▓▓▓▓▓▓▓█ ░░░ ░▓▓▓▓░▓▓▓▓▓▓▒▒██ ░█░ ░░░░░░░▓██░░ ░▒░ ░░ ▒▒▓▓▓▓▓▓▓▓▓▓▓ ░░ ░▓▓▓░█▓▓▓▓▓▒▒█░░ █░░ ░░░░░░░█░▒▓ █ ██░ ░░░ █▒▒▓▓▓▓▓▓▓▓▓▓ ░ ░█▓█░█▓▓▓▓▒▒▓░░ █░░░ ░░░░░░░ ░░ █ ░▒░ ░█░ ▒▒▒▒▓▓▓▓▓▓▓▓▓
88 lines
2.0 KiB
Python
88 lines
2.0 KiB
Python
import requests, schedule, time, os
|
|
# from bs4 import BeautifulSoup
|
|
from whatDomain import *
|
|
|
|
EXTRAURL = []
|
|
|
|
repoListFile = open(os.getenv("REPOFILE", "repoList.list"), 'r')
|
|
i = 0
|
|
for repoUrl in repoListFile:
|
|
i += 1
|
|
print(repoUrl.strip())
|
|
EXTRAURL.append(repoUrl.strip())
|
|
repoListFile.close()
|
|
|
|
IPV4FILENAME = str(os.getenv("IPV4FILENAME", "MirrorListV4"))
|
|
IPV6FILENAME = str(os.getenv("IPV6FILENAME", "MirrorListV6"))
|
|
|
|
# EXTRAURL = list(os.getenv("EXTRAURL", "https://mdu.se/"))
|
|
IPv4FILE = f"/etc/customMirrors/{IPV4FILENAME}"
|
|
IPv6FILE = f"/etc/customMirrors/{IPV6FILENAME}"
|
|
|
|
def sanitizeURL(inpurl: str):
|
|
if "https://" in inpurl:
|
|
outurl = inpurl[8:]
|
|
elif "http://" in inpurl:
|
|
outurl = inpurl[7:]
|
|
elif "http://" or "https://" not in url:
|
|
outurl = inpurl
|
|
else:
|
|
return inpurl
|
|
|
|
i = 0
|
|
for char in outurl:
|
|
i += 1
|
|
if char == "/":
|
|
outurl = outurl[:i]
|
|
|
|
if char == "/":
|
|
outurl = outurl[:-1]
|
|
return outurl
|
|
|
|
def LeJob():
|
|
|
|
print("Starting lookup")
|
|
|
|
# print(LeMirrorDict)
|
|
|
|
with open(IPv4FILE, "w",) as fW:
|
|
|
|
for url in EXTRAURL:
|
|
goodurl = sanitizeURL(url)
|
|
# print(goodurl)
|
|
|
|
# ip4Dict = ermWhatATheIpFromDomainYaCrazy(url)
|
|
ip4Dict = ermWhatATheIpFromDomainYaCrazy(goodurl)
|
|
|
|
try:
|
|
for key, ip in ip4Dict.items():
|
|
print(ip + "/32")
|
|
|
|
fW.write(ip + "/32" + "\n")
|
|
except AttributeError:
|
|
continue
|
|
|
|
|
|
with open(IPv6FILE, "w",) as fW:
|
|
|
|
for url in EXTRAURL:
|
|
goodurl = sanitizeURL(url)
|
|
# print(goodurl)
|
|
|
|
# ip6Dict = ermWhatAAAATheIpFromDomainYaCrazy(url)
|
|
ip6Dict = ermWhatAAAATheIpFromDomainYaCrazy(goodurl)
|
|
|
|
try:
|
|
for key, ip in ip6Dict.items():
|
|
print(ip + "/128")
|
|
|
|
fW.write(ip + "/128" + "\n")
|
|
except AttributeError:
|
|
continue
|
|
|
|
|
|
|
|
|
|
LeJob()
|
|
|
|
print("Done") |