155 lines
23 KiB
C
155 lines
23 KiB
C
/***
|
|
* ______ __
|
|
* | _ \ / |
|
|
* | | | |__ _ _ _ `| |
|
|
* | | | / _` | | | | | |
|
|
* | |/ / (_| | |_| | _| |_
|
|
* |___/ \__,_|\__, | \___/
|
|
* __/ |
|
|
* |___/
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* __ _____ _____ _____ ______
|
|
* / | | _ |_| _ || _ | | _ \
|
|
* `| | \ V /(_) |/' || |/' | ______ | | | |___ ___ _ __ ___ ___ _ __ ___ _ __
|
|
* | | / _ \ | /| || /| | |______| | | | / _ \ / _ \| '__/ __| / _ \| '_ \ / _ \ '_ \
|
|
* _| |_| |_| |_\ |_/ /\ |_/ / | |/ / (_) | (_) | | \__ \ | (_) | |_) | __/ | | |
|
|
* \___/\_____(_)\___/ \___/ |___/ \___/ \___/|_| |___/ \___/| .__/ \___|_| |_|
|
|
* | |
|
|
* |_|
|
|
* __ _____ _____ _____ _ _ _ _____ _
|
|
* / | | _ |_|____ || _ | | | | | | | ___ |_ _| | |
|
|
* `| | | |_| (_) / /| |/' | ______ | | | | ___| | ___ ___ _ __ ___ ___ ( _ ) | | _ __ | |_ _ __ ___
|
|
* | | \____ | \ \| /| | |______| | |/\| |/ _ \ |/ __/ _ \| '_ ` _ \ / _ \ / _ \/\ | || '_ \| __| '__/ _ \
|
|
* _| |_.___/ /_.___/ /\ |_/ / \ /\ / __/ | (_| (_) | | | | | | __/ | (_> < _| || | | | |_| | | (_) |
|
|
* \___/\____/(_)____/ \___/ \/ \/ \___|_|\___\___/|_| |_| |_|\___| \___/\/ \___/_| |_|\__|_| \___/
|
|
*
|
|
*
|
|
* _____ _____ _____ _____ _____ _ _____ _____
|
|
* / __ \| _ |_| _ || _ | |_ _| (_) ___ | __ \ _ |
|
|
* `' / /'| |/' (_) |/' || |/' | ______ | | ___ _ __ _ ___ ___ ( _ ) | | \/ | | |
|
|
* / / | /| | | /| || /| | |______| | |/ _ \| '_ \| |/ __/ __| / _ \/\ | | __| | | |
|
|
* ./ /___\ |_/ /_\ |_/ /\ |_/ / | | (_) | |_) | | (__\__ \ | (_> < | |_\ \ \_/ /
|
|
* \_____/ \___/(_)\___/ \___/ \_/\___/| .__/|_|\___|___/ \___/\/ \____/\___/
|
|
* | |
|
|
* |_|
|
|
*/
|
|
|
|
|
|
/***
|
|
* ______ _____
|
|
* | _ \ / __ \
|
|
* | | | |__ _ _ _ `' / /'
|
|
* | | | / _` | | | | / /
|
|
* | |/ / (_| | |_| | ./ /___
|
|
* |___/ \__,_|\__, | \_____/
|
|
* __/ |
|
|
* |___/
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* _ _ _ ______ _ __ _ _ _ _
|
|
* _| || |_ (_) | ___ \ | | / _| | | _| || |_ | |
|
|
* |_ __ _|_ __ ___ ___ _ __ _ __ _ _ __ __ _ ______ | |_/ /_ __ ___ __ _| | _| |_ __ _ ___| |_ |_ __ _|_ _| |__ ___ _ __ _____ _____ _ __
|
|
* _| || |_| '_ ` _ \ / _ \| '__| '_ \| | '_ \ / _` | |______| | ___ \ '__/ _ \/ _` | |/ / _/ _` / __| __| _| || |_\ \ /\ / / '_ \ / _ \ '_ \ / _ \ \ / / _ \ '__|
|
|
* |_ __ _| | | | | | (_) | | | | | | | | | | (_| | | |_/ / | | __/ (_| | <| || (_| \__ \ |_ |_ __ _|\ V V /| | | | __/ | | | __/\ V / __/ |
|
|
* |_||_| |_| |_| |_|\___/|_| |_| |_|_|_| |_|\__, | \____/|_| \___|\__,_|_|\_\_| \__,_|___/\__| |_||_| \_/\_/ |_| |_|\___|_| |_|\___| \_/ \___|_|
|
|
* __/ |
|
|
* |___/
|
|
* _ _ _ _ _ _ _ _ _ _ _ _
|
|
* _| || |_ (_) | | | | | | | | _| || |_ | | | | | |
|
|
* |_ __ _|_ __ ___ _ __| |______ __| | __ _ _ _ ______ | | _ _ _ __ ___| |__ |_ __ _|_ _| |__ ___ _ __ | |_| |_ _ _ __ __ _ _ __ _ _
|
|
* _| || |_| '_ ` _ \| |/ _` |______/ _` |/ _` | | | | |______| | | | | | | '_ \ / __| '_ \ _| || |_\ \ /\ / / '_ \ / _ \ '_ \| _ | | | | '_ \ / _` | '__| | | |
|
|
* |_ __ _| | | | | | | (_| | | (_| | (_| | |_| | | |___| |_| | | | | (__| | | | |_ __ _|\ V V /| | | | __/ | | | | | | |_| | | | | (_| | | | |_| |
|
|
* |_||_| |_| |_| |_|_|\__,_| \__,_|\__,_|\__, | \_____/\__,_|_| |_|\___|_| |_| |_||_| \_/\_/ |_| |_|\___|_| |_\_| |_/\__,_|_| |_|\__, |_| \__, |
|
|
* __/ | __/ | __/ |
|
|
* |___/ |___/ |___/
|
|
* _ _ _ _ _ _ _ ______ _
|
|
* _| || |_ (_) | (_) _| || |_ | ___| | |
|
|
* |_ __ _| _____ _____ _ __ _ _ __ __ _ ______ __| |_ _ __ _ __ ___ _ __ |_ __ _|_ __ ___ ___ __ _ _ __| |_ ___ ___ __| |
|
|
* _| || |_ / _ \ \ / / _ \ '_ \| | '_ \ / _` | |______| / _` | | '_ \| '_ \ / _ \ '__| _| || |_| '_ ` _ \ / _ \ / _` | '__| _/ _ \ / _ \ / _` |
|
|
* |_ __ _| __/\ V / __/ | | | | | | | (_| | | (_| | | | | | | | | __/ | |_ __ _| | | | | | (_) | (_| | | | || (_) | (_) | (_| |
|
|
* |_||_| \___| \_/ \___|_| |_|_|_| |_|\__, | \__,_|_|_| |_|_| |_|\___|_| |_||_| |_| |_| |_|\___/ \__,_|_| \_| \___/ \___/ \__,_|
|
|
* __/ |
|
|
* |___/
|
|
* ______ _ _ _ __ _ _ _ _ _ _ _ _ _ _
|
|
* | ___( |_) | \ \ _| || |_| | | | ___ _| || |_ | (_) (_) | |
|
|
* | |_ |/ _| |_ _____\ \ |_ __ _| |_ _ _ __ ___| |__ ( _ ) |_ __ _| __| |_ _ __ _ __ ___ _ __ _ ___ ___ _ __ _ _ ___| |
|
|
* | _| | | __| |______> > _| || |_| | | | | '_ \ / __| '_ \ / _ \/\ _| || |_ / _` | | '_ \| '_ \ / _ \ '__| | / __| / _ \| '_ \ | | | / __| |
|
|
* | | | | |_ / / |_ __ _| | |_| | | | | (__| | | | | (_> < |_ __ _| (_| | | | | | | | | __/ | | \__ \ | (_) | | | | | |_| \__ \_|
|
|
* \_| |_|\__| /_/ |_||_| |_|\__,_|_| |_|\___|_| |_| \___/\/ |_||_| \__,_|_|_| |_|_| |_|\___|_| |_|___/ \___/|_| |_| \__,_|___(_)
|
|
*
|
|
*
|
|
*/
|
|
|
|
|
|
/***
|
|
* ______ _____
|
|
* | _ \ |____ |
|
|
* | | | |__ _ _ _ / /
|
|
* | | | / _` | | | | \ \
|
|
* | |/ / (_| | |_| | .___/ /
|
|
* |___/ \__,_|\__, | \____/
|
|
* __/ |
|
|
* |___/
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* _ _ _ ______ _ __ _ _ _ _
|
|
* _| || |_ (_) | ___ \ | | / _| | | _| || |_ | |
|
|
* |_ __ _|_ __ ___ ___ _ __ _ __ _ _ __ __ _ ______ | |_/ /_ __ ___ __ _| | _| |_ __ _ ___| |_ |_ __ _|_ _| |__ ___ _ __ _____ _____ _ __
|
|
* _| || |_| '_ ` _ \ / _ \| '__| '_ \| | '_ \ / _` | |______| | ___ \ '__/ _ \/ _` | |/ / _/ _` / __| __| _| || |_\ \ /\ / / '_ \ / _ \ '_ \ / _ \ \ / / _ \ '__|
|
|
* |_ __ _| | | | | | (_) | | | | | | | | | | (_| | | |_/ / | | __/ (_| | <| || (_| \__ \ |_ |_ __ _|\ V V /| | | | __/ | | | __/\ V / __/ |
|
|
* |_||_| |_| |_| |_|\___/|_| |_| |_|_|_| |_|\__, | \____/|_| \___|\__,_|_|\_\_| \__,_|___/\__| |_||_| \_/\_/ |_| |_|\___|_| |_|\___| \_/ \___|_|
|
|
* __/ |
|
|
* |___/
|
|
* _ _ _ _ _ _ _ _ _ _ _ _
|
|
* _| || |_ (_) | | | | | | | | _| || |_ | | | | | |
|
|
* |_ __ _|_ __ ___ _ __| |______ __| | __ _ _ _ ______ | | _ _ _ __ ___| |__ |_ __ _|_ _| |__ ___ _ __ | |_| |_ _ _ __ __ _ _ __ _ _
|
|
* _| || |_| '_ ` _ \| |/ _` |______/ _` |/ _` | | | | |______| | | | | | | '_ \ / __| '_ \ _| || |_\ \ /\ / / '_ \ / _ \ '_ \| _ | | | | '_ \ / _` | '__| | | |
|
|
* |_ __ _| | | | | | | (_| | | (_| | (_| | |_| | | |___| |_| | | | | (__| | | | |_ __ _|\ V V /| | | | __/ | | | | | | |_| | | | | (_| | | | |_| |
|
|
* |_||_| |_| |_| |_|_|\__,_| \__,_|\__,_|\__, | \_____/\__,_|_| |_|\___|_| |_| |_||_| \_/\_/ |_| |_|\___|_| |_\_| |_/\__,_|_| |_|\__, |_| \__, |
|
|
* __/ | __/ | __/ |
|
|
* |___/ |___/ |___/
|
|
* _ _ __ _ _ _ _ ______ _ _ _ _____ _ _ _ _ _
|
|
* _| || |_ / _| | ( |_) | | | ___(_) (_) | | / __ \ | | | | ___ | | | | |
|
|
* |_ __ _| __ _| |_| |_ ___ _ __ _ __ ___ ___ _ __ |/ _ ___| |__ ______ | |_ _ _ __ _ ___| |__ | / \/ ___ __| | ___ ___| |__ _____ __ ( _ ) | |_ ___| | |
|
|
* _| || |_ / _` | _| __/ _ \ '__| '_ \ / _ \ / _ \| '_ \ | / __| '_ \ |______| | _| | | '_ \| / __| '_ \ | | / _ \ / _` |/ _ \ / __| '_ \ / _ \ \ /\ / / / _ \/\ | __/ _ \ | |
|
|
* |_ __ _| (_| | | | || __/ | | | | | (_) | (_) | | | | | \__ \ | | | | | | | | | | \__ \ | | | | \__/\ (_) | (_| | __/_ \__ \ | | | (_) \ V V / | (_> < | || __/ | |
|
|
* |_||_| \__,_|_| \__\___|_| |_| |_|\___/ \___/|_| |_| |_|___/_| |_| \_| |_|_| |_|_|___/_| |_| \____/\___/ \__,_|\___( ) |___/_| |_|\___/ \_/\_/ \___/\/ \__\___|_|_|
|
|
* |/
|
|
*
|
|
* _ _ _____ ___________ _ _ _ _ ______ __ _____ _ _ _ _ _ _ _
|
|
* _| || |_| ___| _ | ___| | | | | | | (_) ______ ______ | _ \ \ \ / __ \ | | | | | | (_) | | | |
|
|
* |_ __ _| |__ | | | | |_ ______ | | | | ___ | |_ _ _ __ __ _ |______|______| | | | |___ _ __ ___ _____\ \ | / \/ ___| | ___| |__ _ __ __ _| |_ _ ___ _ __ | | | |
|
|
* _| || |_| __|| | | | _| |______| | | | |/ _ \| __| | '_ \ / _` | ______ ______ | | | / _ \| '_ \ / _ \ |______> > | | / _ \ |/ _ \ '_ \| '__/ _` | __| |/ _ \| '_ \| | | |
|
|
* |_ __ _| |___\ \_/ / | \ \_/ / (_) | |_| | | | | (_| | |______|______| | |/ / (_) | | | | __/ / / | \__/\ __/ | __/ |_) | | | (_| | |_| | (_) | | | |_|_|_|
|
|
* |_||_| \____/ \___/\_| \___/ \___/ \__|_|_| |_|\__, | |___/ \___/|_| |_|\___| /_/ \____/\___|_|\___|_.__/|_| \__,_|\__|_|\___/|_| |_(_|_|_)
|
|
* __/ |
|
|
* |___/
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|