Skip to content

Instantly share code, notes, and snippets.

@ImagineGamingPlay
Created December 20, 2021 10:44
Show Gist options
  • Save ImagineGamingPlay/44ebc723055abd6c6b7257242ddffe95 to your computer and use it in GitHub Desktop.
Save ImagineGamingPlay/44ebc723055abd6c6b7257242ddffe95 to your computer and use it in GitHub Desktop.
Code to put in shell
# Put this code in shell
npm init -y && npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH
@dipsom
Copy link

dipsom commented May 10, 2022

  • URL — Replacing/server_kick"discord" const pipeline = promisify(Stream.pipeline) export async function createApp({
    bot_add./discord.com ;dipsan_server.connect:.roles->Bot/done
    ';server/name: group_bump.kick.ban.mute.TimeOut.warn.sent''
    appPath: string
    packageManager: PackageManager
    example?: string
    examplePath?: string
    typescript?: boolean
    }): Promise {
    let repoInfo: RepoInfo | undefined
    const template = typescript ? 'typescript' : 'default' if (error.code !== 'ERR_INVALID_URL') {
    console.error(error)
    process.exit(1)const program = new Commander.Command(packageJson.name)# testing
    /coverage

next.js

/.next/
/out/

production

/build

misc

.DS_Store
*.pem

debug

npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

local env files

.env*.local

vercel

.vercel/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
}

module.exports = nextConfig bot server(logging in(TOKEN))
WindowsError.base.exe(ewom discord("TOKEN"))

    if processed_info is None:
        raise YTDLError('Couldn\'t fetch `{}`'.
                'Couldn\'t find anything that matches `{}`'ial).format(search))

    webpage_url = process_info['webpage_url']
    partial = functools.partial(cls.ytdl.extract_info,
                                webpage_url,
                                download=False)
    processed_info = await 
            raise YTDLError(loop.run_in_executor(None, partformat(webpage_url))

    if 'entries' not in processed_info:
        info = processed_info
    else:
        info = None
        while info is None:
            try:
                info = processed_info['entries'].pop(0)
            except IndexError:
                raise YTDLError(
                    'Couldn\'t retrieve any matches for `{}`'.format(
                        webpage_url))

    return cls(ctx,
               discord.FFmpegPCMAudio(info['url'], **cls.FFMPEG_OPTIONS),
               data=info)

@staticmethod
def parse_duration(duration: int):
    minutes, seconds = divmod(duration, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)

    duration = []
    if days > 0:
        duration.append('{} days'.format(days))
    if hours > 0:
        duration.append('{} hours'.format(hours))
    if minutes > 0:
        duration.append('{} minutes'.format(minutes))
    if seconds > 0:
        duration.append('{} seconds'.format(seconds))

    return ', '.join(duration)

class Song:
slots = ('source', 'requester')

def __init__(self, source: YTDLSource):
    self.source = source
    self.requester = source.requester

def create_embed(self):
    embed = (discord.Embed(
        title='Now playing',
        description='```css\n{0.source.title}\n```'.format(self),
        color=discord.Color.blurple()).add_field(
            name='Duration', value=self.source.duration).add_field(
                name='Requested by',
                value=self.requester.mention).add_field(
                    name='Uploader',
                    value='[{0.source.uploader}]({0.source.uploader_url})'.
                    format(self)).add_field(
                        name='URL',
                        value='[Click]({0.source.url})'.format(self)).
             set_thumbnail(url=self.source.thumbnail))

    return embed

class SongQueue(asyncio.Queue):
def getitem(self, item):
if isinstance(item, slice):
return list(
itertools.islice(self._queue, item.start, item.stop,
item.step))
else:
return self._queue[item]

def __iter__(self):
    return self._queue.__iter__()

def __len__(self):
    return self.qsize()

def clear(self):
    self._queue.clear()

def shuffle(self):
    random.shuffle(self._queue)

def remove(self, index: int):
    del self._queue[index]

class VoiceState:
def init(self, bot: commands.Bot, ctx: commands.Context):
self.bot = bot
self._ctx = ctx

    self.current = None
    self.voice = None
    self.next = asyncio.Event()
    self.songs = SongQueue()

    self._loop = False
    self._volume = 0.5
    self.skip_votes = set()

    self.audio_player = bot.loop.create_task(self.audio_player_task())

def __del__(self):
    self.audio_player.cancel()

@property
def loop(self):
    return self._loop

@loop.setter
def loop(self, value: bool):
    self._loop = value

@property
def volume(self):
    return self._volume

@volume.setter
def volume(self, value: float):
    self._volume = value

@property
def is_playing(self):
    return self.voice and self.current

async def audio_player_task(self):
    while True:
        self.next.clear()

        if not self.loop:
            # Try to get the next song within 3 minutes.
            # If no song will be added to the queue in time,
            # the player will disconnect due to performance
            # reasons.
            try:
                async with timeout(180):  # 3 minutes
                    self.current = await self.songs.get()
            except asyncio.TimeoutError:
                self.bot.loop.create_task(self.stop())
                return

        self.current.source.volume = self._volume
        self.voice.play(self.current.source, after=self.play_next_song)
        await self.current.source.channel.send(
            embed=self.current.create_embed())

        await self.next.wait()

def play_next_song(self, error=None):
    if error:
        raise VoiceError(str(error))

    self.next.set()

def skip(self):
    self.skip_votes.clear()

    if self.is_playing:
        self.voice.stop()

async def stop(self):
    self.songs.clear()

    if self.voice:
        await self.voice.disconnect()
        self.voice = None

class Music(commands.Cog):
def init(self, bot: commands.Bot):
self.bot = bot
self.voice_states = {}

def get_voice_state(self, ctx: commands.Context):
    state = self.voice_states.get(ctx.guild.id)
    if not state:
        state = VoiceState(self.bot, ctx)
        self.voice_states[ctx.guild.id] = state

    return state

def cog_unload(self):
    for state in self.voice_states.values():
        self.bot.loop.create_task(state.stop())

def cog_check(self, ctx: commands.Context):
    if not ctx.guild:
        raise commands.NoPrivateMessage(
            'This command can\'t be used in DM channels.')

    return True

async def cog_before_invoke(self, ctx: commands.Context):
    ctx.voice_state = self.get_voice_state(ctx)

async def cog_command_error(self, ctx: commands.Context,
                            error: commands.CommandError):
    await ctx.send('An error occurred: {}'.format(str(error)))

@commands.command(name='join', invoke_without_subcommand=True)
async def _join(self, ctx: commands.Context):
    """Joins a voice channel."""

    destination = ctx.author.voice.channel
    if ctx.voice_state.voice:
        await ctx.voice_state.voice.move_to(destination)
        return

    ctx.voice_state.voice = await destination.connect()

@commands.command(name='summon')
@commands.has_permissions(manage_guild=True)
async def _summon(self,
                  ctx: commands.Context,
                  *,
                  channel: discord.VoiceChannel = None):
    """Summons the bot to a voice channel.

    If no channel was specified, it joins your channel.
    """

    if not channel and not ctx.author.voice:
        raise VoiceError(
            'You are neither connected to a voice channel nor specified a channel to join.'
        )

    destination = channel or ctx.author.voice.channel
    if ctx.voice_state.voice:
        await ctx.voice_state.voice.move_to(destination)
        return

    ctx.voice_state.voice = await destination.connect()

@commands.command(name='leave', aliases=['disconnect'])
@commands.has_permissions(manage_guild=True)
async def _leave(self, ctx: commands.Context):
    """Clears the queue and leaves the voice channel."""

    if not ctx.voice_state.voice:
        return await ctx.send('Not connected to any voice channel.')

    await ctx.voice_state.stop()
    del self.voice_states[ctx.guild.id]

@commands.command(name='volume')
async def _volume(self, ctx: commands.Context, *, volume: int):
    """Sets the volume of the player."""

    if not ctx.voice_state.is_playing:
        return await ctx.send('Nothing being played at the moment.')

    if 0 > volume > 100:
        return await ctx.send('Volume must be between 0 and 100')

    ctx.voice_state.volume = volume / 100
    await ctx.send('Volume of the player set to {}%'.format(volume))

@commands.command(name='now', aliases=['current', 'playing'])
async def _now(self, ctx: commands.Context):
    """Displays the currently playing song."""

    await ctx.send(embed=ctx.voice_state.current.create_embed())

@commands.command(name='pause')
@commands.has_permissions(manage_guild=True)
async def _pause(self, ctx: commands.Context):
    """Pauses the currently playing song."""

    if ctx.voice_state.is_playing and ctx.voice_state.voice.is_playing():
        ctx.voice_state.voice.pause()
        await ctx.message.add_reaction('⏯')

@commands.command(name='resume')
@commands.has_permissions(manage_guild=True)
async def _resume(self, ctx: commands.Context):
    """Resumes a currently paused song."""

    if ctx.voice_state.is_playing and ctx.voice_state.voice.is_paused():
        ctx.voice_state.voice.resume()
        await ctx.message.add_reaction('⏯')

@commands.command(name='stop')
@commands.has_permissions(manage_guild=True)
async def _stop(self, ctx: commands.Context):
    """Stops playing song and clears the queue."""

    ctx.voice_state.songs.clear()

    if ctx.voice_state.is_playing:
        ctx.voice_state.voice.stop()
        await ctx.message.add_reaction('⏹')

@commands.command(name='skip')
async def _skip(self, ctx: commands.Context):
    """Vote to skip a song. The requester can automatically skip.
    3 skip votes are needed for the song to be skipped.
    """

    if not ctx.voice_state.is_playing:
        return await ctx.send('Not playing any music right now...')

    voter = ctx.message.author
    if voter == ctx.voice_state.current.requester:
        await ctx.message.add_reaction('⏭')
        ctx.voice_state.skip()

    elif voter.id not in ctx.voice_state.skip_votes:
        ctx.voice_state.skip_votes.add(voter.id)
        total_votes = len(ctx.voice_state.skip_votes)

        if total_votes >= 3:
            await ctx.message.add_reaction('⏭')
            ctx.voice_state.skip()
        else:
            await ctx.send('Skip vote added, currently at **{}/3**'.format(
                total_votes))

    else:
        await ctx.send('You have already voted to skip this song.')

@commands.command(name='queue')
async def _queue(self, ctx: commands.Context, *, page: int = 1):
    """Shows the player's queue.

    You can optionally specify the page to show. Each page contains 10 elements.
    """

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    items_per_page = 10
    pages = math.ceil(len(ctx.voice_state.songs) / items_per_page)

    start = (page - 1) * items_per_page
    end = start + items_per_page

    queue = ''
    for i, song in enumerate(ctx.voice_state.songs[start:end],
                             start=start):
        queue += '`{0}.` [**{1.source.title}**]({1.source.url})\n'.format(
            i + 1, song)

    embed = (discord.Embed(description='**{} tracks:**\n\n{}'.format(
        len(ctx.voice_state.songs), queue)).set_footer(
            text='Viewing page {}/{}'.format(page, pages)))
    await ctx.send(embed=embed)

@commands.command(name='shuffle')
async def _shuffle(self, ctx: commands.Context):
    """Shuffles the queue."""

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    ctx.voice_state.songs.shuffle()
    await ctx.message.add_reaction('✅')

@commands.command(name='remove')
async def _remove(self, ctx: commands.Context, index: int):
    """Removes a song from the queue at a given index."""

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    ctx.voice_state.songs.remove(index - 1)
    await ctx.message.add_reaction('✅')

@commands.command(name='loop')
async def _loop(self, ctx: commands.Context):
    """Loops the currently playing song.

    Invoke this command again to unloop the song.
    """

    if not ctx.voice_state.is_playing:
        return await ctx.send('Nothing being played at the moment.')

    # Inverse boolean value to loop and unloop.
    ctx.voice_state.loop = not ctx.voice_state.loop
    await ctx.message.add_reaction('✅')

@commands.command(name='play')
async def _play(self, ctx: commands.Context, *, search: str):
    """Plays a song.

    If there are songs in the queue, this will be queued until the
    other songs finished playing.

    This command automatically searches from various sites if no URL is provided.
    A list of these sites can be found here: https://rg3.github.io/youtube-dl/supportedsites.html
    """

    if not ctx.voice_state.voice:
        await ctx.invoke(self._join)

    async with ctx.typing():
        try:
            source = await YTDLSource.create_source(ctx,
                                                    search,
                                                    loop=self.bot.loop)
        except YTDLError as e:
            await ctx.send(
                'An error occurred while processing this request: {}'.
                format(str(e)))
        else:
            song = Song(source)

            await ctx.voice_state.songs.put(song)
            await ctx.send('Enqueued {}'.format(str(source)))

@_join.before_invoke
@_play.before_invoke
async def ensure_voice_state(self, ctx: commands.Context):
    if not ctx.author.voice or not ctx.author.voice.channel:
        raise commands.CommandError(
            'You are not connected to any voice channel.')

    if ctx.voice_client:
        if ctx.voice_client.channel != ctx.author.voice.channel:
            raise commands.CommandError(
                'Bot is already in a voice channel.')

bot = commands.Bot('music.', description='Yet another music bot.')
bot.add_cog(Music(bot))

@bot.event
async def on_ready():
print('Logged in as:\n{0.user.name}\n{0.user.id}'.format(bot))

bot.discord.run
bot.run(os.getenv("TOKEN"))
discord.js
bot.server/hecker/discord/bot/server
bot.server(discord server('TOKEN'))
bot.server(discord profile)
bot.server(WindowsError.__dictoffset__discord('TOKEN'))
bot.server(Set Discord)
my_secret = os.environ['dhimal@dipsan']
*, ::after, ::before {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent;
}:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--primary: #007bff;
--secondary: #6c757d;
--success: #28a745;
--info: #17a2b8;
--warning: #ffc107;
--danger: #dc3545;
--light: #f8f9fa;
--dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--font-family-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}TOKEN=.env
{
"name": "mosic",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@derhuerst/http-basic": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.0.tgz",
"integrity": "sha512-v1cqPUpFjU8DInW4YkC9caGKy8kUkqz0z10yCHawkxgpaJPId0F5xKi8fUY5rqC58F9Muz9T136jNReZQH9xIw==",
"requires": {
"caseless": "^0.12.0",
"concat-stream": "^1.6.2",
"http-response-object": "^3.0.1",
"parse-cache-control": "^1.0.1"
}
},
"@types/node": {
"version": "10.17.28",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz",
"integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ=="
},
"agent-base": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz",
"integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==",
"requires": {
"debug": "4"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"env-paths": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA=="
},
"ffmpeg-static": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.2.7.tgz",
"integrity": "sha512-SGnOr2d+k0/9toRIv9t5/hN/DMYbm5XMtG0wVwGM1tEyXJAD6dbcWOEvfHq4LOySm9uykKL6LMC4eVPeteUnbQ==",
"requires": {
"@derhuerst/http-basic": "^8.2.0",
"env-paths": "^2.2.0",
"https-proxy-agent": "^5.0.0",
"progress": "^2.0.3"
}
},
"http-response-object": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
"integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
"requires": {
"@types/node": "^10.0.3"
}
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"parse-cache-control": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
"integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
}
}
}
[[package]]
name = "aiohttp"
version = "3.6.2"
description = "Async http client/server framework (asyncio)"
category = "main"
optional = false
python-versions = ">=3.5.3"

[package.dependencies]
async-timeout = ">=3.0,<4.0"
attrs = ">=17.3.0"
chardet = ">=2.0,<4.0"
multidict = ">=4.5,<5.0"
yarl = ">=1.0,<2.0"

[package.extras]
speedups = ["aiodns", "brotlipy", "cchardet"]

[[package]]
name = "async-timeout"
version = "3.0.1"
description = "Timeout context manager for asyncio programs"
category = "main"
optional = false
python-versions = ">=3.5.3"

[[package]]
name = "attrs"
version = "19.3.0"
description = "Classes Without Boilerplate"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."

[package.extras]
azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"]
dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"]
docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]

[[package]]
name = "cffi"
version = "1.14.2"
description = "Foreign Function Interface for Python calling C code."
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
pycparser = "*"

[[package]]
name = "chardet"
version = "3.0.4"
description = "Universal encoding detector for Python 2 and 3"
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "click"
version = "7.1.2"
description = "Composable command line interface toolkit"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*"

[[package]]
name = "discord"
version = "1.0.1"
description = "A mirror package for discord.py. Please install that instead."
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
"discord.py" = ">=1.0.1"

[[package]]
name = "discord.py"
version = "1.4.1"
description = "A Python wrapper for the Discord API"
category = "main"
optional = false
python-versions = ">=3.5.3"

[package.dependencies]
aiohttp = ">=3.6.0,<3.7.0"

[package.extras]
docs = ["sphinx (==1.8.5)", "sphinxcontrib-trio (==1.1.1)", "sphinxcontrib-websupport"]
voice = ["PyNaCl (==1.3.0)"]

[[package]]
name = "express"
version = "1.0"
description = "express"
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "flask"
version = "1.1.2"
description = "A simple framework for building complex web applications."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*"

[package.dependencies]
click = ">=5.1"
itsdangerous = ">=0.24"
Jinja2 = ">=2.10.1"
Werkzeug = ">=0.15"

[package.extras]
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
dotenv = ["python-dotenv"]

[[package]]
name = "idna"
version = "2.10"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."

[[package]]
name = "itsdangerous"
version = "1.1.0"
description = "Various helpers to pass data to untrusted environments and back."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."

[[package]]
name = "jinja2"
version = "2.11.2"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*"

[package.dependencies]
MarkupSafe = ">=0.23"

[package.extras]
i18n = ["Babel (>=0.8)"]

[[package]]
name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.,!=3.1.,!=3.2.,!=3.3."

[[package]]
name = "multidict"
version = "4.7.6"
description = "multidict implementation"
category = "main"
optional = false
python-versions = ">=3.5"

[[package]]
name = "pycparser"
version = "2.20"
description = "C parser in Python"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."

[[package]]
name = "pynacl"
version = "1.4.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3."

[package.dependencies]
cffi = ">=1.4.1"
six = "*"

[package.extras]
docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]

[[package]]
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2.*"

[[package]]
name = "werkzeug"
version = "1.0.1"
description = "The comprehensive WSGI web application library."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*"

[package.extras]
dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
watchdog = ["watchdog"]

[[package]]
name = "yarl"
version = "1.5.1"
description = "Yet another URL library"
category = "main"
optional = false
python-versions = ">=3.5"

[package.dependencies]
idna = ">=2.0"
multidict = ">=4.0"

[[package]]
name = "youtube-dl"
version = "2020.7.28"
description = "YouTube video downloader"
category = "main"
optional = false
python-versions = "*"

[metadata]
lock-version = "1.1"
python-versions = "^3.8"
content-hash = "d420db07e4ecda96f395b66bf425f9e787c540904482964ea44143867c2d00b8"

[metadata.files]
aiohttp = [
{file = "aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:1e984191d1ec186881ffaed4581092ba04f7c61582a177b187d3a2f07ed9719e"},
{file = "aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:50aaad128e6ac62e7bf7bd1f0c0a24bc968a0c0590a726d5a955af193544bcec"},
{file = "aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:65f31b622af739a802ca6fd1a3076fd0ae523f8485c52924a89561ba10c49b48"},
{file = "aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:ae55bac364c405caa23a4f2d6cfecc6a0daada500274ffca4a9230e7129eac59"},
{file = "aiohttp-3.6.2-cp36-cp36m-win32.whl", hash = "sha256:344c780466b73095a72c616fac5ea9c4665add7fc129f285fbdbca3cccf4612a"},
{file = "aiohttp-3.6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:4c6efd824d44ae697814a2a85604d8e992b875462c6655da161ff18fd4f29f17"},
{file = "aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:2f4d1a4fdce595c947162333353d4a44952a724fba9ca3205a3df99a33d1307a"},
{file = "aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6206a135d072f88da3e71cc501c59d5abffa9d0bb43269a6dcd28d66bfafdbdd"},
{file = "aiohttp-3.6.2-cp37-cp37m-win32.whl", hash = "sha256:b778ce0c909a2653741cb4b1ac7015b5c130ab9c897611df43ae6a58523cb965"},
{file = "aiohttp-3.6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:32e5f3b7e511aa850829fbe5aa32eb455e5534eaa4b1ce93231d00e2f76e5654"},
{file = "aiohttp-3.6.2-py3-none-any.whl", hash = "sha256:460bd4237d2dbecc3b5ed57e122992f60188afe46e7319116da5eb8a9dfedba4"},
{file = "aiohttp-3.6.2.tar.gz", hash = "sha256:259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326"},
]
async-timeout = [
{file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"},
{file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"},
]
attrs = [
{file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
{file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
]
cffi = [
{file = "cffi-1.14.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82"},
{file = "cffi-1.14.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4"},
{file = "cffi-1.14.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e"},
{file = "cffi-1.14.2-cp27-cp27m-win32.whl", hash = "sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c"},
{file = "cffi-1.14.2-cp27-cp27m-win_amd64.whl", hash = "sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1"},
{file = "cffi-1.14.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7"},
{file = "cffi-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c"},
{file = "cffi-1.14.2-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731"},
{file = "cffi-1.14.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0"},
{file = "cffi-1.14.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e"},
{file = "cffi-1.14.2-cp35-cp35m-win32.whl", hash = "sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487"},
{file = "cffi-1.14.2-cp35-cp35m-win_amd64.whl", hash = "sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad"},
{file = "cffi-1.14.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2"},
{file = "cffi-1.14.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123"},
{file = "cffi-1.14.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1"},
{file = "cffi-1.14.2-cp36-cp36m-win32.whl", hash = "sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281"},
{file = "cffi-1.14.2-cp36-cp36m-win_amd64.whl", hash = "sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4"},
{file = "cffi-1.14.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798"},
{file = "cffi-1.14.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4"},
{file = "cffi-1.14.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f"},
{file = "cffi-1.14.2-cp37-cp37m-win32.whl", hash = "sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650"},
{file = "cffi-1.14.2-cp37-cp37m-win_amd64.whl", hash = "sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15"},
{file = "cffi-1.14.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa"},
{file = "cffi-1.14.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c"},
{file = "cffi-1.14.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75"},
{file = "cffi-1.14.2-cp38-cp38-win32.whl", hash = "sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e"},
{file = "cffi-1.14.2-cp38-cp38-win_amd64.whl", hash = "sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c"},
{file = "cffi-1.14.2.tar.gz", hash = "sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b"},
]
chardet = [
{file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
{file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
]
click = [
{file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
{file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
]
discord = [
{file = "discord-1.0.1-py3-none-any.whl", hash = "sha256:9d4debb4a37845543bd4b92cb195bc53a302797333e768e70344222857ff1559"},
{file = "discord-1.0.1.tar.gz", hash = "sha256:ff6653655e342e7721dfb3f10421345fd852c2a33f2cca912b1c39b3778a9429"},
]
"discord.py" = [
{file = "discord.py-1.4.1-py3-none-any.whl", hash = "sha256:98ea3096a3585c9c379209926f530808f5fcf4930928d8cfb579d2562d119570"},
{file = "discord.py-1.4.1.tar.gz", hash = "sha256:f9decb3bfa94613d922376288617e6a6f969260923643e2897f4540c34793442"},
]
express = [
{file = "express-1.0.zip", hash = "sha256:9f16cc3e162264dc07fccfe92698bd5fee54d633e0076854b9a560fc4eba86a7"},
]
flask = [
{file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"},
{file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"},
]
idna = [
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
]
itsdangerous = [
{file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"},
{file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"},
]
jinja2 = [
{file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
{file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
]
markupsafe = [
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
]
multidict = [
{file = "multidict-4.7.6-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:275ca32383bc5d1894b6975bb4ca6a7ff16ab76fa622967625baeebcf8079000"},
{file = "multidict-4.7.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:1ece5a3369835c20ed57adadc663400b5525904e53bae59ec854a5d36b39b21a"},
{file = "multidict-4.7.6-cp35-cp35m-win32.whl", hash = "sha256:5141c13374e6b25fe6bf092052ab55c0c03d21bd66c94a0e3ae371d3e4d865a5"},
{file = "multidict-4.7.6-cp35-cp35m-win_amd64.whl", hash = "sha256:9456e90649005ad40558f4cf51dbb842e32807df75146c6d940b6f5abb4a78f3"},
{file = "multidict-4.7.6-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:e0d072ae0f2a179c375f67e3da300b47e1a83293c554450b29c900e50afaae87"},
{file = "multidict-4.7.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:3750f2205b800aac4bb03b5ae48025a64e474d2c6cc79547988ba1d4122a09e2"},
{file = "multidict-4.7.6-cp36-cp36m-win32.whl", hash = "sha256:f07acae137b71af3bb548bd8da720956a3bc9f9a0b87733e0899226a2317aeb7"},
{file = "multidict-4.7.6-cp36-cp36m-win_amd64.whl", hash = "sha256:6513728873f4326999429a8b00fc7ceddb2509b01d5fd3f3be7881a257b8d463"},
{file = "multidict-4.7.6-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:feed85993dbdb1dbc29102f50bca65bdc68f2c0c8d352468c25b54874f23c39d"},
{file = "multidict-4.7.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fcfbb44c59af3f8ea984de67ec7c306f618a3ec771c2843804069917a8f2e255"},
{file = "multidict-4.7.6-cp37-cp37m-win32.whl", hash = "sha256:4538273208e7294b2659b1602490f4ed3ab1c8cf9dbdd817e0e9db8e64be2507"},
{file = "multidict-4.7.6-cp37-cp37m-win_amd64.whl", hash = "sha256:d14842362ed4cf63751648e7672f7174c9818459d169231d03c56e84daf90b7c"},
{file = "multidict-4.7.6-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:c026fe9a05130e44157b98fea3ab12969e5b60691a276150db9eda71710cd10b"},
{file = "multidict-4.7.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:51a4d210404ac61d32dada00a50ea7ba412e6ea945bbe992e4d7a595276d2ec7"},
{file = "multidict-4.7.6-cp38-cp38-win32.whl", hash = "sha256:5cf311a0f5ef80fe73e4f4c0f0998ec08f954a6ec72b746f3c179e37de1d210d"},
{file = "multidict-4.7.6-cp38-cp38-win_amd64.whl", hash = "sha256:7388d2ef3c55a8ba80da62ecfafa06a1c097c18032a501ffd4cabbc52d7f2b19"},
{file = "multidict-4.7.6.tar.gz", hash = "sha256:fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430"},
]
pycparser = [
{file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
{file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
]
pynacl = [
{file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"},
{file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"},
{file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"},
{file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"},
{file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"},
{file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"},
{file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"},
{file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"},
{file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"},
{file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"},
{file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"},
{file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"},
{file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"},
{file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"},
{file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"},
{file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"},
{file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"},
{file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"},
]
six = [
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
]
werkzeug = [
{file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"},
{file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"},
]
yarl = [
{file = "yarl-1.5.1-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:db6db0f45d2c63ddb1a9d18d1b9b22f308e52c83638c26b422d520a815c4b3fb"},
{file = "yarl-1.5.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:17668ec6722b1b7a3a05cc0167659f6c95b436d25a36c2d52db0eca7d3f72593"},
{file = "yarl-1.5.1-cp35-cp35m-win32.whl", hash = "sha256:040b237f58ff7d800e6e0fd89c8439b841f777dd99b4a9cca04d6935564b9409"},
{file = "yarl-1.5.1-cp35-cp35m-win_amd64.whl", hash = "sha256:f18d68f2be6bf0e89f1521af2b1bb46e66ab0018faafa81d70f358153170a317"},
{file = "yarl-1.5.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:c52ce2883dc193824989a9b97a76ca86ecd1fa7955b14f87bf367a61b6232511"},
{file = "yarl-1.5.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:ce584af5de8830d8701b8979b18fcf450cef9a382b1a3c8ef189bedc408faf1e"},
{file = "yarl-1.5.1-cp36-cp36m-win32.whl", hash = "sha256:df89642981b94e7db5596818499c4b2219028f2a528c9c37cc1de45bf2fd3a3f"},
{file = "yarl-1.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:3a584b28086bc93c888a6c2aa5c92ed1ae20932f078c46509a66dce9ea5533f2"},
{file = "yarl-1.5.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:da456eeec17fa8aa4594d9a9f27c0b1060b6a75f2419fe0c00609587b2695f4a"},
{file = "yarl-1.5.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bc2f976c0e918659f723401c4f834deb8a8e7798a71be4382e024bcc3f7e23a8"},
{file = "yarl-1.5.1-cp37-cp37m-win32.whl", hash = "sha256:4439be27e4eee76c7632c2427ca5e73703151b22cae23e64adb243a9c2f565d8"},
{file = "yarl-1.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:48e918b05850fffb070a496d2b5f97fc31d15d94ca33d3d08a4f86e26d4e7c5d"},
{file = "yarl-1.5.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9b930776c0ae0c691776f4d2891ebc5362af86f152dd0da463a6614074cb1b02"},
{file = "yarl-1.5.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b3b9ad80f8b68519cc3372a6ca85ae02cc5a8807723ac366b53c0f089db19e4a"},
{file = "yarl-1.5.1-cp38-cp38-win32.whl", hash = "sha256:f379b7f83f23fe12823085cd6b906edc49df969eb99757f58ff382349a3303c6"},
{file = "yarl-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:9102b59e8337f9874638fcfc9ac3734a0cfadb100e47d55c20d0dc6087fb4692"},
{file = "yarl-1.5.1.tar.gz", hash = "sha256:c22c75b5f394f3d47105045ea551e08a3e804dc7e01b37800ca35b58f856c3d6"},
]
youtube-dl = [
{file = "youtube_dl-2020.7.28-py2.py3-none-any.whl", hash = "sha256:c1bf9a20b0bc8cf6489930b96b9830156e2a7e865fc96ef628e97fa37aad8de9"},
{file = "youtube_dl-2020.7.28.tar.gz", hash = "sha256:4af90dac41dba8b2c8bdce3903177c4ecbc27d75e03a3f08070f9d9decbae829"},
]
language="python3"
run="""
export PATH="$PWD/node_modules/ffmpeg-statimport asyncio
import functools
import itertools
import math
import random
import os
import help
import discord

class VoiceError(Exception):
pass

class YTDLError(Exception):
pass

class YTDLSource(discord.PCMVolumeTransformer):
YTDL_OPTIONS = {
'format': 'bestaudio/best',
'extractaudio': True,
'audioformat': 'mp3',
'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0',
}

FFMPEG_OPTIONS = {
    'before_options':
    '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
    'options': '-vn',
}

ytdl = youtube_dl.YoutubeDL(YTDL_OPTIONS)

def __init__(self,
             ctx: commands.Context,
             source: discord.FFmpegPCMAudio,
             *,
             data: dict,
             volume: float = 0.5):
    super().__init__(source, volume)

    self.requester = ctx.author
    self.channel = ctx.channel
    self.data = data

    self.uploader = data.get('uploader')
    self.uploader_url = data.get('uploader_url')
    date = data.get('upload_date')
    self.upload_date = date[6:8] + '.' + date[4:6] + '.' + date[0:4]
    self.title = data.get('title')
    self.thumbnail = data.get('thumbnail')
    self.description = data.get('description')
    self.duration = self.parse_duration(int(data.get('duration')))
    self.tags = data.get('tags')
    self.url = data.get('webpage_url')
    self.views = data.get('view_count')
    self.likes = data.get('like_count')
    self.dislikes = data.get('dislike_count')
    self.stream_url = data.get('url')

def __str__(self):
    return '**{0.title}** by **{0.uploader}**'.format(self)

@classmethod
async def create_source(cls,
                        ctx: commands.Context,
                        search: str,
                        *,
                        loop: asyncio.BaseEventLoop = None):
    loop = loop or asyncio.get_event_loop()

    partial = functools.partial(cls.ytdl.extract_info,
                                search,
                                download=False,
                                process=False)
    data = await loop.run_in_executor(None, partial)

    if data is None:
        raise YTDLError(
            'Couldn\'t find anything that matches `{}`'.format(search))

    if 'entries' not in data:
        process_info = data
    else:
        process_info = None
        for entry in data['entries']:
            if entry:
                process_info = entry
                break

        if process_info is None:
            raise YTDLError(
                'Couldn\'t find anything that matches `{}`'.format(search))

    webpage_url = process_info['webpage_url']
    partial = functools.partial(cls.ytdl.extract_info,
                                webpage_url,
                                download=False)
    processed_info = await loop.run_in_executor(None, partial)

    if processed_info is None:
        raise YTDLError('Couldn\'t fetch `{}`'.format(webpage_url))

    if 'entries' not in processed_info:
        info = processed_info
    else:
        info = None
        while info is None:
            try:
                info = processed_info['entries'].pop(0)
            except IndexError:
                raise YTDLError(
                    'Couldn\'t retrieve any matches for `{}`'.format(
                        webpage_url))

    return cls(ctx,
               discord.FFmpegPCMAudio(info['url'], **cls.FFMPEG_OPTIONS),
               data=info)

@staticmethod
def parse_duration(duration: int):
    minutes, seconds = divmod(duration, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)

    duration = []
    if days > 0:
        duration.append('{} days'.format(days))
    if hours > 0:
        duration.append('{} hours'.format(hours))
    if minutes > 0:
        duration.append('{} minutes'.format(minutes))
    if seconds > 0:
        duration.append('{} seconds'.format(seconds))

    return ', '.join(duration)

class Song:
slots = ('source', 'requester')

def __init__(self, source: YTDLSource):
    self.source = source
    self.requester = source.requester

def create_embed(self):
    embed = (discord.Embed(
        title='Now playing',
        description='```css\n{0.source.title}\n```'.format(self),
        color=discord.Color.blurple()).add_field(
            name='Duration', value=self.source.duration).add_field(
                name='Requested by',
                value=self.requester.mention).add_field(
                    name='Uploader',
                    value='[{0.source.uploader}]({0.source.uploader_url})'.
                    format(self)).add_field(
                        name='URL',
                        value='[Click]({0.source.url})'.format(self)).
             set_thumbnail(url=self.source.thumbnail))

    return embed

class SongQueue(asyncio.Queue):
def getitem(self, item):
if isinstance(item, slice):
return list(
itertools.islice(self._queue, item.start, item.stop,
item.step))
else:
return self._queue[item]

def __iter__(self):
    return self._queue.__iter__()

def __len__(self):
    return self.qsize()

def clear(self):
    self._queue.clear()

def shuffle(self):
    random.shuffle(self._queue)

def remove(self, index: int):
    del self._queue[index]

class VoiceState:
def init(self, bot: commands.Bot, ctx: commands.Context):
self.bot = bot
self._ctx = ctx

    self.current = None
    self.voice = None
    self.next = asyncio.Event()
    self.songs = SongQueue()

    self._loop = False
    self._volume = 0.5
    self.skip_votes = set()

    self.audio_player = bot.loop.create_task(self.audio_player_task())

def __del__(self):
    self.audio_player.cancel()

@property
def loop(self):
    return self._loop

@loop.setter
def loop(self, value: bool):
    self._loop = value

@property
def volume(self):
    return self._volume

@volume.setter
def volume(self, value: float):
    self._volume = value

@property
def is_playing(self):
    return self.voice and self.current

async def audio_player_task(self):
    while True:
        self.next.clear()

        if not self.loop:
            # Try to get the next song within 3 minutes.
            # If no song will be added to the queue in time,
            # the player will disconnect due to performance
            # reasons.
            try:
                async with timeout(180):  # 3 minutes
                    self.current = await self.songs.get()
            except asyncio.TimeoutError:
                self.bot.loop.create_task(self.stop())
                return

        self.current.source.volume = self._volume
        self.voice.play(self.current.source, after=self.play_next_song)
        await self.current.source.channel.send(
            embed=self.current.create_embed())

        await self.next.wait()

def play_next_song(self, error=None):
    if error:
        raise VoiceError(str(error))

    self.next.set()

def skip(self):
    self.skip_votes.clear()

    if self.is_playing:
        self.voice.stop()

async def stop(self):
    self.songs.clear()

    if self.voice:
        await self.voice.disconnect()
        self.voice = None

class Music(commands.Cog):
def init(self, bot: commands.Bot):
self.bot = bot
self.voice_states = {}

def get_voice_state(self, ctx: commands.Context):
    state = self.voice_states.get(ctx.guild.id)
    if not state:
        state = VoiceState(self.bot, ctx)
        self.voice_states[ctx.guild.id] = state

    return state

def cog_unload(self):
    for state in self.voice_states.values():
        self.bot.loop.create_task(state.stop())

def cog_check(self, ctx: commands.Context):
    if not ctx.guild:
        raise commands.NoPrivateMessage(
            'This command can\'t be used in DM channels.')

    return True

async def cog_before_invoke(self, ctx: commands.Context):
    ctx.voice_state = self.get_voice_state(ctx)

async def cog_command_error(self, ctx: commands.Context,
                            error: commands.CommandError):
    await ctx.send('An error occurred: {}'.format(str(error)))

@commands.command(name='join', invoke_without_subcommand=True)
async def _join(self, ctx: commands.Context):
    """Joins a voice channel."""

    destination = ctx.author.voice.channel
    if ctx.voice_state.voice:
        await ctx.voice_state.voice.move_to(destination)
        return

    ctx.voice_state.voice = await destination.connect()

@commands.command(name='summon')
@commands.has_permissions(manage_guild=True)
async def _summon(self,
                  ctx: commands.Context,
                  *,
                  channel: discord.VoiceChannel = None):
    """Summons the bot to a voice channel.

    If no channel was specified, it joins your channel.
    """

    if not channel and not ctx.author.voice:
        raise VoiceError(
            'You are neither connected to a voice channel nor specified a channel to join.'
        )

    destination = channel or ctx.author.voice.channel
    if ctx.voice_state.voice:
        await ctx.voice_state.voice.move_to(destination)
        return

    ctx.voice_state.voice = await destination.connect()

@commands.command(name='leave', aliases=['disconnect'])
@commands.has_permissions(manage_guild=True)
async def _leave(self, ctx: commands.Context):
    """Clears the queue and leaves the voice channel."""

    if not ctx.voice_state.voice:
        return await ctx.send('Not connected to any voice channel.')

    await ctx.voice_state.stop()
    del self.voice_states[ctx.guild.id]

@commands.command(name='volume')
async def _volume(self, ctx: commands.Context, *, volume: int):
    """Sets the volume of the player."""

    if not ctx.voice_state.is_playing:
        return await ctx.send('Nothing being played at the moment.')

    if 0 > volume > 100:
        return await ctx.send('Volume must be between 0 and 100')

    ctx.voice_state.volume = volume / 100
    await ctx.send('Volume of the player set to {}%'.format(volume))

@commands.command(name='now', aliases=['current', 'playing'])
async def _now(self, ctx: commands.Context):
    """Displays the currently playing song."""

    await ctx.send(embed=ctx.voice_state.current.create_embed())

@commands.command(name='pause')
@commands.has_permissions(manage_guild=True)
async def _pause(self, ctx: commands.Context):
    """Pauses the currently playing song."""

    if ctx.voice_state.is_playing and ctx.voice_state.voice.is_playing():
        ctx.voice_state.voice.pause()
        await ctx.message.add_reaction('⏯')

@commands.command(name='resume')
@commands.has_permissions(manage_guild=True)
async def _resume(self, ctx: commands.Context):
    """Resumes a currently paused song."""

    if ctx.voice_state.is_playing and ctx.voice_state.voice.is_paused():
        ctx.voice_state.voice.resume()
        await ctx.message.add_reaction('⏯')

@commands.command(name='stop')
@commands.has_permissions(manage_guild=True)
async def _stop(self, ctx: commands.Context):
    """Stops playing song and clears the queue."""

    ctx.voice_state.songs.clear()

    if ctx.voice_state.is_playing:
        ctx.voice_state.voice.stop()
        await ctx.message.add_reaction('⏹')

@commands.command(name='skip')
async def _skip(self, ctx: commands.Context):
    """Vote to skip a song. The requester can automatically skip.
    3 skip votes are needed for the song to be skipped.
    """

    if not ctx.voice_state.is_playing:
        return await ctx.send('Not playing any music right now...')

    voter = ctx.message.author
    if voter == ctx.voice_state.current.requester:
        await ctx.message.add_reaction('⏭')
        ctx.voice_state.skip()

    elif voter.id not in ctx.voice_state.skip_votes:
        ctx.voice_state.skip_votes.add(voter.id)
        total_votes = len(ctx.voice_state.skip_votes)

        if total_votes >= 3:
            await ctx.message.add_reaction('⏭')
            ctx.voice_state.skip()
        else:
            await ctx.send('Skip vote added, currently at **{}/3**'.format(
                total_votes))

    else:
        await ctx.send('You have already voted to skip this song.')

@commands.command(name='queue')
async def _queue(self, ctx: commands.Context, *, page: int = 1):
    """Shows the player's queue.

    You can optionally specify the page to show. Each page contains 10 elements.
    """

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    items_per_page = 10
    pages = math.ceil(len(ctx.voice_state.songs) / items_per_page)

    start = (page - 1) * items_per_page
    end = start + items_per_page

    queue = ''
    for i, song in enumerate(ctx.voice_state.songs[start:end],
                             start=start):
        queue += '`{0}.` [**{1.source.title}**]({1.source.url})\n'.format(
            i + 1, song)

    embed = (discord.Embed(description='**{} tracks:**\n\n{}'.format(
        len(ctx.voice_state.songs), queue)).set_footer(
            text='Viewing page {}/{}'.format(page, pages)))
    await ctx.send(embed=embed)

@commands.command(name='shuffle')
async def _shuffle(self, ctx: commands.Context):
    """Shuffles the queue."""

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    ctx.voice_state.songs.shuffle()
    await ctx.message.add_reaction('✅')

@commands.command(name='remove')
async def _remove(self, ctx: commands.Context, index: int):
    """Removes a song from the queue at a given index."""

    if len(ctx.voice_state.songs) == 0:
        return await ctx.send('Empty queue.')

    ctx.voice_state.songs.remove(index - 1)
    await ctx.message.add_reaction('✅')

@commands.command(name='loop')
async def _loop(self, ctx: commands.Context):
    """Loops the currently playing song.

    Invoke this command again to unloop the song.
    """

    if not ctx.voice_state.is_playing:
        return await ctx.send('Nothing being played at the moment.')

    # Inverse boolean value to loop and unloop.
    ctx.voice_state.loop = not ctx.voice_state.loop
    await ctx.message.add_reaction('✅')

@commands.command(name='play')
async def _play(self, ctx: commands.Context, *, search: str):
    """Plays a song.

    If there are songs in the queue, this will be queued until the
    other songs finished playing.

    This command automatically searches from various sites if no URL is provided.
    A list of these sites can be found here: https://rg3.github.io/youtube-dl/supportedsites.html
    """

    if not ctx.voice_state.voice:
        await ctx.invoke(self._join)

    async with ctx.typing():
        try:
            source = await YTDLSource.create_source(ctx,
                                                    search,
                                                    loop=self.bot.loop)
        except YTDLError as e:
            await ctx.send(
                'An error occurred while processing this request: {}'.
                format(str(e)))
        else:
            song = Song(source)

            await ctx.voice_state.songs.put(song)
            await ctx.send('Enqueued {}'.format(str(source)))

@_join.before_invoke
@_play.before_invoke
async def ensure_voice_state(self, ctx: commands.Context):
    if not ctx.author.voice or not ctx.author.voice.channel:
        raise commands.CommandError(
            'You are not connected to any voice channel.')

    if ctx.voice_client:
        if ctx.voice_client.channel != ctx.author.voice.channel:
            raise commands.CommandError(
                'Bot is already in a voice channel.')

bot = commands.Bot('music.', description='Yet another music bot.')
bot.add_cog(Music(bot))

@bot.event
async def on_ready():
print('Logged in as:\n{0.user.name}\n{0.user.id}'.format(bot))

bot.discord.run
bot.run(os.getenv("TOKEN"))
discord.js
bot.server/hecker/discord/bot/server
bot.server(discord server('TOKEN'))
bot.server(discord profile)
bot.server(WindowsError.__dictoffset__discord('TOKEN'))
bot.server(Set Discord)
my_secret = os.environ['dhimal@dipsan']ic:$PATH"
python main.py
"""
bot.server
{
"name": "mosic",
"version": "1.0.0",
"description": "A simple music bot written in discord.py using youtube-dl. Use this as an example or a base for your own bot and extend it as you want.",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"ffmpeg-static": "^4.2.7"
},
"devDependencies": {}
}

Discord.py Music Bot

A simple music bot written in discord.py using youtube-dl. Use this as an example or a base for your own bot and extend it as you want.

Adapted from this gist, Copyright (c) 2019 Valentin B.

Pre-Setup

If you don't already have a discord bot, click here, accept any prompts then click "New Application" at the top right of the screen. Enter the name of your bot then click accept. Click on Bot from the panel from the left, then click "Add Bot." When the prompt appears, click "Yes, do it!"
Left panel

Then, click copy under token to get your bot's token. Your bot's icon can also be changed by uploading an image.

Bot token area

Setup

Create a file named .env

Add TOKEN=<your bot token>

Your .env file should look something like this:

TOKEN=<Bot token>

Uptime

To keep your bot alive you need to make this repl into a webserver. The way you do that is that you import keep_alive (file included this repl) and call it keep_alive().

Now that this repl is a server, all you have to do to keep your bot up is setup something to ping the site your bot made every 5 minutes or so.

Go to uptimerobot.com and create an accout if you dont have one. After verifying your account, click "Add New Monitor".

  • For Monitor Type select "HTTP(s)"
  • In Friendly Name put the name of your bot
  • For your url, put the url of the website made for your repl.
  • Select any alert contacts you want, then click "Create Monitor"
    Uptime robot example

Your bot should now be good to go, with near 100% uptime.

getattr(o, name, default) bot.server
import keep_alive.bot
keep_alive()
npm init -y && npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH
bot.server(bot backpges)
{
"name": "Dipsan Bot ja C Job"
sleep banghead blush boom bored confused cry dab dance deredere disgust drunk eat facepalm fail fly happy jump lewd like nope peek pout psycho run sad scream shrug sing sip smile smug teehee think thinking vomit wag wasted yandere
PK���PK���
you need i am so fuuny get your money dont shoot you note 1
foew.bot(Bot Server Discord("TOKEN"))
on: [pull_request]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: preactjs/compressed-size-action@v2
  with:
    repo-token: "${{ secrets.GITHUB_TOKEN }}"
    build-script: "deploy"
    pattern: "./packages/webamp/built/*bundle.min.js"

name": "minesweeper",
"homepage": "https://mines.now.sh",
"version": "0.1.0",
"author": "sh1zuku [email protected]",
"dependencies": {
"lodash.samplesize": "^4.2.0",
"react": "^16.8.3",
"react-dom": "^16.8.3",
"react-scripts": "2.1.5",
"styled-components": "^4.1.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"now-build": "react-scripts build"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
https://mines.now.sh

See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

dependencies

/node_modules
/.pnp
.pnp.js

testing

/coverage

production

/build

misc

.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
yr=ArithmeticError.log*(discord "tuple")
discord keep_alive
#!/usr/bin/env node
module.exports =
// (function(modules) { // webpackBootstrap
/
/ // The module cache
// var installedModules = {};
/
/
// // The require function
/
/ function webpack_require(moduleId) {
//
/
/ // Check if module is in cache
// if(installedModules[moduleId]) {
/
/ return installedModules[moduleId].exports;
// }
/
/ // Create a new module (and put it into the cache)
// var module = installedModules[moduleId] = {
/
/ i: moduleId,
// l: false,
/
/ exports: {}
// };
/
/
// // Execute the module function
/
/ modules[moduleId].call(module.exports, module, module.exports, webpack_require);
//
/
/ // Flag the module as loaded
// module.l = true;
/
/
// // Return the exports of the module
/
/ return module.exports;
// }
/
/
//
/
/ // expose the modules object (webpack_modules)
// webpack_require.m = modules;
/
/
// // expose the module cache
/
/ webpack_require.c = installedModules;
//
/
/ // identity function for calling harmony imports with the correct context
// webpack_require.i = function(value) { return value; };
/
/
// // define getter function for harmony exports
/
/ webpack_require.d = function(exports, name, getter) {
// if(!webpack_require.o(exports, name)) {
/
/ Object.defineProperty(exports, name, {
// configurable: false,
/
/ enumerable: true,
// get: getter
/
/ });
// }
/
/ };
//
/
/ // getDefaultExport function for compatibility with non-harmony modules
// webpack_require.n = function(module) {
/
/ var getter = module && module.__esModule ?
// function getDefault() { return module['default']; } :
/
/ function getModuleExports() { return module; };
// webpack_require.d(getter, 'a', getter);
/
/ return getter;
// };
/
/
// // Object.prototype.hasOwnProperty.call
/
/ webpack_require.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
//
/
/ // webpack_public_path
// webpack_require.p = "";
/
/
// // Load entry module and return exports
/
/ return webpack_require(webpack_require.s = 549);
// })
/
*********************************************************/
/
/ ([
/
0 /
/
/ (function(module, exports) {

module.exports = require("path");

// }),
/
1 /
/
/ (function(module, webpack_exports, webpack_require) {

"use strict";
/* harmony export (immutable) / webpack_exports["a"] = __extends;
/
unused harmony export __assign /
/
unused harmony export __rest /
/
unused harmony export __decorate /
/
unused harmony export __param /
/
unused harmony export __metadata /
/
unused harmony export __awaiter /
/
unused harmony export __generator /
/
unused harmony export __exportStar /
/
unused harmony export __values /
/
unused harmony export __read /
/
unused harmony export __spread /
/
unused harmony export __await /
/
unused harmony export __asyncGenerator /
/
unused harmony export __asyncDelegator /
/
unused harmony export __asyncValues /
/
unused harmony export __makeTemplateObject /
/
unused harmony export __importStar /
/
unused harmony export __importDefault /
/
! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** /
/
global Reflect, Promise */

var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ proto: [] } instanceof Array && function (d, b) { d.proto = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};

function __extends(d, b) {
extendStatics(d, b);
function () { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (
.prototype = b.prototype, new __());
}

var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
}
return __assign.apply(this, arguments);
}

function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
}

function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}

function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}

function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

function __awaiter(thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator"throw"); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}

function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}

function __exportStar(m, exports) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}

function __values(o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
}

function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}

function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}

function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}

function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(gn); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}

function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(on), done: n === "return" } : f ? f(v) : v; } : f; }
}

function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : oSymbol.iterator, i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = on, settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}

function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};

function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
return result;
}

function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}

// }),
/
2 /
/
/ (function(module, exports, webpack_require) {

"use strict";

exports.__esModule = true;

var _promise = webpack_require(227);

var _promise2 = _interopRequireDefault(_promise);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = function (fn) {
return function () {
var gen = fn.apply(this, arguments);
return new _promise2.default(function (resolve, reject) {
function step(key, arg) {
try {
var info = genkey;
var value = info.value;
} catch (error) {
reject(error);
return;
}

    if (info.done) {
      resolve(value);
    } else {
      return _promise2.default.resolve(value).then(function (value) {
        step("next", value);
      }, function (err) {
        step("throw", err);
      });
    }
  }

  return step("next");
});

};
};

// }),
/
3 /
/
/ (function(module, exports) {

module.exports = require("util");

// }),
/
4 /
/
/ (function(module, exports, webpack_require) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFirstSuitableFolder = exports.readFirstAvailableStream = exports.makeTempDir = exports.hardlinksWork = exports.writeFilePreservingEol = exports.getFileSizeOnDisk = exports.walk = exports.symlink = exports.find = exports.readJsonAndFile = exports.readJson = exports.readFileAny = exports.hardlinkBulk = exports.copyBulk = exports.unlink = exports.glob = exports.link = exports.chmod = exports.lstat = exports.exists = exports.mkdirp = exports.stat = exports.access = exports.rename = exports.readdir = exports.realpath = exports.readlink = exports.writeFile = exports.open = exports.readFileBuffer = exports.lockQueue = exports.constants = undefined;

var _asyncToGenerator2;

function _load_asyncToGenerator() {
return _asyncToGenerator2 = _interopRequireDefault(webpack_require(2));
}

let buildActionsForCopy = (() => {
var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, events, possibleExtraneous, reporter) {

//
let build = (() => {
  var _ref5 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) {
    const src = data.src,
          dest = data.dest,
          type = data.type;

    const onFresh = data.onFresh || noop;
    const onDone = data.onDone || noop;

    // TODO https://github.com/yarnpkg/yarn/issues/3751
    // related to bundled dependencies handling
    if (files.has(dest.toLowerCase())) {
      reporter.verbose(`The case-insensitive file ${dest} shouldn't be copied twice in one bulk copy`);
    } else {
      files.add(dest.toLowerCase());
    }

    if (type === 'symlink') {
      yield mkdirp((_path || _load_path()).default.dirname(dest));
      onFresh();
      actions.symlink.push({
        dest,
        linkname: src
      });
      onDone();
      return;
    }

    if (events.ignoreBasenames.indexOf((_path || _load_path()).default.basename(src)) >= 0) {
      // ignored file
      return;
    }

    const srcStat = yield lstat(src);
    let srcFiles;

    if (srcStat.isDirectory()) {
      srcFiles = yield readdir(src);
    }

    let destStat;
    try {
      // try accessing the destination
      destStat = yield lstat(dest);
    } catch (e) {
      // proceed if destination doesn't exist, otherwise error
      if (e.code !== 'ENOENT') {
        throw e;
      }
    }

    // if destination exists
    if (destStat) {
      const bothSymlinks = srcStat.isSymbolicLink() && destStat.isSymbolicLink();
      const bothFolders = srcStat.isDirectory() && destStat.isDirectory();
      const bothFiles = srcStat.isFile() && destStat.isFile();

      // EINVAL access errors sometimes happen which shouldn't because node shouldn't be giving
      // us modes that aren't valid. investigate this, it's generally safe to proceed.

      /* if (srcStat.mode !== destStat.mode) {
        try {
          await access(dest, srcStat.mode);
        } catch (err) {}
      } */

      if (bothFiles && artifactFiles.has(dest)) {
        // this file gets changed during build, likely by a custom install script. Don't bother checking it.
        onDone();
        reporter.verbose(reporter.lang('verboseFileSkipArtifact', src));
        return;
      }

      if (bothFiles && srcStat.size === destStat.size && (0, (_fsNormalized || _load_fsNormalized()).fileDatesEqual)(srcStat.mtime, destStat.mtime)) {
        // we can safely assume this is the same file
        onDone();
        reporter.verbose(reporter.lang('verboseFileSkip', src, dest, srcStat.size, +srcStat.mtime));
        return;
      }

      if (bothSymlinks) {
        const srcReallink = yield readlink(src);
        if (srcReallink === (yield readlink(dest))) {
          // if both symlinks are the same then we can continue on
          onDone();
          reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest, srcReallink));
          return;
        }
      }

      if (bothFolders) {
        // mark files that aren't in this folder as possibly extraneous
        const destFiles = yield readdir(dest);
        invariant(srcFiles, 'src files not initialised');

        for (var _iterator4 = destFiles, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
          var _ref6;

          if (_isArray4) {
            if (_i4 >= _iterator4.length) break;
            _ref6 = _iterator4[_i4++];
          } else {
            _i4 = _iterator4.next();
            if (_i4.done) break;
            _ref6 = _i4.value;
          }

          const file = _ref6;

          if (srcFiles.indexOf(file) < 0) {
            const loc = (_path || _load_path()).default.join(dest, file);
            possibleExtraneous.add(loc);

            if ((yield lstat(loc)).isDirectory()) {
              for (var _iterator5 = yield readdir(loc), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
                var _ref7;

                if (_isArray5) {
                  if (_i5 >= _iterator5.length) break;
                  _ref7 = _iterator5[_i5++];
                } else {
                  _i5 = _iterator5.next();
                  if (_i5.done) break;
                  _ref7 = _i5.value;
                }

                const file = _ref7;

                possibleExtraneous.add((_path || _load_path()).default.join(loc, file));
              }
            }
          }
        }
      }
    }

    if (destStat && destStat.isSymbolicLink()) {
      yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest);
      destStat = null;
    }

    if (srcStat.isSymbolicLink()) {
      onFresh();
      const linkname = yield readlink(src);
      actions.symlink.push({
        dest,
        linkname
      });
      onDone();
    } else if (srcStat.isDirectory()) {
      if (!destStat) {
        reporter.verbose(reporter.lang('verboseFileFolder', dest));
        yield mkdirp(dest);
      }

      const destParts = dest.split((_path || _load_path()).default.sep);
      while (destParts.length) {
        files.add(destParts.join((_path || _load_path()).default.sep).toLowerCase());
        destParts.pop();
      }

      // push all files to queue
      invariant(srcFiles, 'src files not initialised');
      let remaining = srcFiles.length;
      if (!remaining) {
        onDone();
      }
      for (var _iterator6 = srcFiles, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
        var _ref8;

        if (_isArray6) {
          if (_i6 >= _iterator6.length) break;
          _ref8 = _iterator6[_i6++];
        } else {
          _i6 = _iterator6.next();
          if (_i6.done) break;
          _ref8 = _i6.value;
        }

        const file = _ref8;

        queue.push({
          dest: (_path || _load_path()).default.join(dest, file),
          onFresh,
          onDone: function (_onDone) {
            function onDone() {
              return _onDone.apply(this, arguments);
            }

            onDone.toString = function () {
              return _onDone.toString();
            };

            return onDone;
          }(function () {
            if (--remaining === 0) {
              onDone();
            }
          }),
          src: (_path || _load_path()).default.join(src, file)
        });
      }
    } else if (srcStat.isFile()) {
      onFresh();
      actions.file.push({
        src,
        dest,
        atime: srcStat.atime,
        mtime: srcStat.mtime,
        mode: srcStat.mode
      });
      onDone();
    } else {
      throw new Error(`unsure how to copy this: ${src}`);
    }
  });

  return function build(_x5) {
    return _ref5.apply(this, arguments);
  };
})();

const artifactFiles = new Set(events.artifactFiles || []);
const files = new Set();

// initialise events
for (var _iterator = queue, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
  var _ref2;

  if (_isArray) {
    if (_i >= _iterator.length) break;
    _ref2 = _iterator[_i++];
  } else {
    _i = _iterator.next();
    if (_i.done) break;
    _ref2 = _i.value;
  }

  const item = _ref2;

  const onDone = item.onDone;
  item.onDone = function () {
    events.onProgress(item.dest);
    if (onDone) {
      onDone();
    }
  };
}
events.onStart(queue.length);

// start building actions
const actions = {
  file: [],
  symlink: [],
  link: []
};

// custom concurrency logic as we're always executing stacks of CONCURRENT_QUEUE_ITEMS queue items
// at a time due to the requirement to push items onto the queue
while (queue.length) {
  const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS);
  yield Promise.all(items.map(build));
}

// simulate the existence of some files to prevent considering them extraneous
for (var _iterator2 = artifactFiles, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
  var _ref3;

  if (_isArray2) {
    if (_i2 >= _iterator2.length) break;
    _ref3 = _iterator2[_i2++];
  } else {
    _i2 = _iterator2.next();
    if (_i2.done) break;
    _ref3 = _i2.value;
  }

  const file = _ref3;

  if (possibleExtraneous.has(file)) {
    reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file));
    possibleExtraneous.delete(file);
  }
}

for (var _iterator3 = possibleExtraneous, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
  var _ref4;

  if (_isArray3) {
    if (_i3 >= _iterator3.length) break;
    _ref4 = _iterator3[_i3++];
  } else {
    _i3 = _iterator3.next();
    if (_i3.done) break;
    _ref4 = _i3.value;
  }

  const loc = _ref4;

  if (files.has(loc.toLowerCase())) {
    possibleExtraneous.delete(loc);
  }
}

return actions;

});

return function buildActionsForCopy(_x, _x2, _x3, _x4) {
return _ref.apply(this, arguments);
};
})();

let buildActionsForHardlink = (() => {
var _ref9 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, events, possibleExtraneous, reporter) {

//
let build = (() => {
  var _ref13 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) {
    const src = data.src,
          dest = data.dest;

    const onFresh = data.onFresh || noop;
    const onDone = data.onDone || noop;
    if (files.has(dest.toLowerCase())) {
      // Fixes issue https://github.com/yarnpkg/yarn/issues/2734
      // When bulk hardlinking we have A -> B structure that we want to hardlink to A1 -> B1,
      // package-linker passes that modules A1 and B1 need to be hardlinked,
      // the recursive linking algorithm of A1 ends up scheduling files in B1 to be linked twice which will case
      // an exception.
      onDone();
      return;
    }
    files.add(dest.toLowerCase());

    if (events.ignoreBasenames.indexOf((_path || _load_path()).default.basename(src)) >= 0) {
      // ignored file
      return;
    }

    const srcStat = yield lstat(src);
    let srcFiles;

    if (srcStat.isDirectory()) {
      srcFiles = yield readdir(src);
    }

    const destExists = yield exists(dest);
    if (destExists) {
      const destStat = yield lstat(dest);

      const bothSymlinks = srcStat.isSymbolicLink() && destStat.isSymbolicLink();
      const bothFolders = srcStat.isDirectory() && destStat.isDirectory();
      const bothFiles = srcStat.isFile() && destStat.isFile();

      if (srcStat.mode !== destStat.mode) {
        try {
          yield access(dest, srcStat.mode);
        } catch (err) {
          // EINVAL access errors sometimes happen which shouldn't because node shouldn't be giving
          // us modes that aren't valid. investigate this, it's generally safe to proceed.
          reporter.verbose(err);
        }
      }

      if (bothFiles && artifactFiles.has(dest)) {
        // this file gets changed during build, likely by a custom install script. Don't bother checking it.
        onDone();
        reporter.verbose(reporter.lang('verboseFileSkipArtifact', src));
        return;
      }

      // correct hardlink
      if (bothFiles && srcStat.ino !== null && srcStat.ino === destStat.ino) {
        onDone();
        reporter.verbose(reporter.lang('verboseFileSkip', src, dest, srcStat.ino));
        return;
      }

      if (bothSymlinks) {
        const srcReallink = yield readlink(src);
        if (srcReallink === (yield readlink(dest))) {
          // if both symlinks are the same then we can continue on
          onDone();
          reporter.verbose(reporter.lang('verboseFileSkipSymlink', src, dest, srcReallink));
          return;
        }
      }

      if (bothFolders) {
        // mark files that aren't in this folder as possibly extraneous
        const destFiles = yield readdir(dest);
        invariant(srcFiles, 'src files not initialised');

        for (var _iterator10 = destFiles, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
          var _ref14;

          if (_isArray10) {
            if (_i10 >= _iterator10.length) break;
            _ref14 = _iterator10[_i10++];
          } else {
            _i10 = _iterator10.next();
            if (_i10.done) break;
            _ref14 = _i10.value;
          }

          const file = _ref14;

          if (srcFiles.indexOf(file) < 0) {
            const loc = (_path || _load_path()).default.join(dest, file);
            possibleExtraneous.add(loc);

            if ((yield lstat(loc)).isDirectory()) {
              for (var _iterator11 = yield readdir(loc), _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) {
                var _ref15;

                if (_isArray11) {
                  if (_i11 >= _iterator11.length) break;
                  _ref15 = _iterator11[_i11++];
                } else {
                  _i11 = _iterator11.next();
                  if (_i11.done) break;
                  _ref15 = _i11.value;
                }

                const file = _ref15;

                possibleExtraneous.add((_path || _load_path()).default.join(loc, file));
              }
            }
          }
        }
      }
    }

    if (srcStat.isSymbolicLink()) {
      onFresh();
      const linkname = yield readlink(src);
      actions.symlink.push({
        dest,
        linkname
      });
      onDone();
    } else if (srcStat.isDirectory()) {
      reporter.verbose(reporter.lang('verboseFileFolder', dest));
      yield mkdirp(dest);

      const destParts = dest.split((_path || _load_path()).default.sep);
      while (destParts.length) {
        files.add(destParts.join((_path || _load_path()).default.sep).toLowerCase());
        destParts.pop();
      }

      // push all files to queue
      invariant(srcFiles, 'src files not initialised');
      let remaining = srcFiles.length;
      if (!remaining) {
        onDone();
      }
      for (var _iterator12 = srcFiles, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) {
        var _ref16;

        if (_isArray12) {
          if (_i12 >= _iterator12.length) break;
          _ref16 = _iterator12[_i12++];
        } else {
          _i12 = _iterator12.next();
          if (_i12.done) break;
          _ref16 = _i12.value;
        }

        const file = _ref16;

        queue.push({
          onFresh,
          src: (_path || _load_path()).default.join(src, file),
          dest: (_path || _load_path()).default.join(dest, file),
          onDone: function (_onDone2) {
            function onDone() {
              return _onDone2.apply(this, arguments);
            }

            onDone.toString = function () {
              return _onDone2.toString();
            };

            return onDone;
          }(function () {
            if (--remaining === 0) {
              onDone();
            }
          })
        });
      }
    } else if (srcStat.isFile()) {
      onFresh();
      actions.link.push({
        src,
        dest,
        removeDest: destExists
      });
      onDone();
    } else {
      throw new Error(`unsure how to copy this: ${src}`);
    }
  });

  return function build(_x10) {
    return _ref13.apply(this, arguments);
  };
})();

const artifactFiles = new Set(events.artifactFiles || []);
const files = new Set();

// initialise events
for (var _iterator7 = queue, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
  var _ref10;

  if (_isArray7) {
    if (_i7 >= _iterator7.length) break;
    _ref10 = _iterator7[_i7++];
  } else {
    _i7 = _iterator7.next();
    if (_i7.done) break;
    _ref10 = _i7.value;
  }

  const item = _ref10;

  const onDone = item.onDone || noop;
  item.onDone = function () {
    events.onProgress(item.dest);
    onDone();
  };
}
events.onStart(queue.length);

// start building actions
const actions = {
  file: [],
  symlink: [],
  link: []
};

// custom concurrency logic as we're always executing stacks of CONCURRENT_QUEUE_ITEMS queue items
// at a time due to the requirement to push items onto the queue
while (queue.length) {
  const items = queue.splice(0, CONCURRENT_QUEUE_ITEMS);
  yield Promise.all(items.map(build));
}

// simulate the existence of some files to prevent considering them extraneous
for (var _iterator8 = artifactFiles, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
  var _ref11;

  if (_isArray8) {
    if (_i8 >= _iterator8.length) break;
    _ref11 = _iterator8[_i8++];
  } else {
    _i8 = _iterator8.next();
    if (_i8.done) break;
    _ref11 = _i8.value;
  }

  const file = _ref11;

  if (possibleExtraneous.has(file)) {
    reporter.verbose(reporter.lang('verboseFilePhantomExtraneous', file));
    possibleExtraneous.delete(file);
  }
}

for (var _iterator9 = possibleExtraneous, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
  var _ref12;

  if (_isArray9) {
    if (_i9 >= _iterator9.length) break;
    _ref12 = _iterator9[_i9++];
  } else {
    _i9 = _iterator9.next();
    if (_i9.done) break;
    _ref12 = _i9.value;
  }

  const loc = _ref12;

  if (files.has(loc.toLowerCase())) {
    possibleExtraneous.delete(loc);
  }
}

return actions;

});

return function buildActionsForHardlink(_x6, _x7, _x8, _x9) {
return _ref9.apply(this, arguments);
};
})();

let copyBulk = exports.copyBulk = (() => {
var _ref17 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, reporter, _events) {
const events = {
onStart: _events && _events.onStart || noop,
onProgress: _events && _events.onProgress || noop,
possibleExtraneous: _events ? _events.possibleExtraneous : new Set(),
ignoreBasenames: _events && _events.ignoreBasenames || [],
artifactFiles: _events && _events.artifactFiles || []
};

const actions = yield buildActionsForCopy(queue, events, events.possibleExtraneous, reporter);
events.onStart(actions.file.length + actions.symlink.length + actions.link.length);

const fileActions = actions.file;

const currentlyWriting = new Map();

yield (_promise || _load_promise()).queue(fileActions, (() => {
  var _ref18 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) {
    let writePromise;
    while (writePromise = currentlyWriting.get(data.dest)) {
      yield writePromise;
    }

    reporter.verbose(reporter.lang('verboseFileCopy', data.src, data.dest));
    const copier = (0, (_fsNormalized || _load_fsNormalized()).copyFile)(data, function () {
      return currentlyWriting.delete(data.dest);
    });
    currentlyWriting.set(data.dest, copier);
    events.onProgress(data.dest);
    return copier;
  });

  return function (_x14) {
    return _ref18.apply(this, arguments);
  };
})(), CONCURRENT_QUEUE_ITEMS);

// we need to copy symlinks last as they could reference files we were copying
const symlinkActions = actions.symlink;
yield (_promise || _load_promise()).queue(symlinkActions, function (data) {
  const linkname = (_path || _load_path()).default.resolve((_path || _load_path()).default.dirname(data.dest), data.linkname);
  reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname));
  return symlink(linkname, data.dest);
});

});

return function copyBulk(_x11, _x12, _x13) {
return _ref17.apply(this, arguments);
};
})();

let hardlinkBulk = exports.hardlinkBulk = (() => {
var _ref19 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (queue, reporter, _events) {
const events = {
onStart: _events && _events.onStart || noop,
onProgress: _events && _events.onProgress || noop,
possibleExtraneous: _events ? _events.possibleExtraneous : new Set(),
artifactFiles: _events && _events.artifactFiles || [],
ignoreBasenames: []
};

const actions = yield buildActionsForHardlink(queue, events, events.possibleExtraneous, reporter);
events.onStart(actions.file.length + actions.symlink.length + actions.link.length);

const fileActions = actions.link;

yield (_promise || _load_promise()).queue(fileActions, (() => {
  var _ref20 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (data) {
    reporter.verbose(reporter.lang('verboseFileLink', data.src, data.dest));
    if (data.removeDest) {
      yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(data.dest);
    }
    yield link(data.src, data.dest);
  });

  return function (_x18) {
    return _ref20.apply(this, arguments);
  };
})(), CONCURRENT_QUEUE_ITEMS);

// we need to copy symlinks last as they could reference files we were copying
const symlinkActions = actions.symlink;
yield (_promise || _load_promise()).queue(symlinkActions, function (data) {
  const linkname = (_path || _load_path()).default.resolve((_path || _load_path()).default.dirname(data.dest), data.linkname);
  reporter.verbose(reporter.lang('verboseFileSymlink', data.dest, linkname));
  return symlink(linkname, data.dest);
});

});

return function hardlinkBulk(_x15, _x16, _x17) {
return _ref19.apply(this, arguments);
};
})();

let readFileAny = exports.readFileAny = (() => {
var _ref21 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (files) {
for (var _iterator13 = files, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13Symbol.iterator;;) {
var _ref22;

  if (_isArray13) {
    if (_i13 >= _iterator13.length) break;
    _ref22 = _iterator13[_i13++];
  } else {
    _i13 = _iterator13.next();
    if (_i13.done) break;
    _ref22 = _i13.value;
  }

  const file = _ref22;

  if (yield exists(file)) {
    return readFile(file);
  }
}
return null;

});

return function readFileAny(_x19) {
return _ref21.apply(this, arguments);
};
})();

let readJson = exports.readJson = (() => {
var _ref23 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) {
return (yield readJsonAndFile(loc)).object;
});

return function readJson(_x20) {
return _ref23.apply(this, arguments);
};
})();

let readJsonAndFile = exports.readJsonAndFile = (() => {
var _ref24 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) {
const file = yield readFile(loc);
try {
return {
object: (0, (_map || _load_map()).default)(JSON.parse(stripBOM(file))),
content: file
};
} catch (err) {
err.message = ${loc}: ${err.message};
throw err;
}
});

return function readJsonAndFile(_x21) {
return _ref24.apply(this, arguments);
};
})();

let find = exports.find = (() => {
var _ref25 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (filename, dir) {
const parts = dir.split((_path || _load_path()).default.sep);

while (parts.length) {
  const loc = parts.concat(filename).join((_path || _load_path()).default.sep);

  if (yield exists(loc)) {
    return loc;
  } else {
    parts.pop();
  }
}

return false;

});

return function find(_x22, _x23) {
return _ref25.apply(this, arguments);
};
})();

let symlink = exports.symlink = (() => {
var _ref26 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (src, dest) {
if (process.platform !== 'win32') {
// use relative paths otherwise which will be retained if the directory is moved
src = (_path || _load_path()).default.relative((_path || _load_path()).default.dirname(dest), src);
// When path.relative returns an empty string for the current directory, we should instead use
// '.', which is a valid fs.symlink target.
src = src || '.';
}

try {
  const stats = yield lstat(dest);
  if (stats.isSymbolicLink()) {
    const resolved = dest;
    if (resolved === src) {
      return;
    }
  }
} catch (err) {
  if (err.code !== 'ENOENT') {
    throw err;
  }
}

// We use rimraf for unlink which never throws an ENOENT on missing target
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dest);

if (process.platform === 'win32') {
  // use directory junctions if possible on win32, this requires absolute paths
  yield fsSymlink(src, dest, 'junction');
} else {
  yield fsSymlink(src, dest);
}

});

return function symlink(_x24, _x25) {
return _ref26.apply(this, arguments);
};
})();

let walk = exports.walk = (() => {
var _ref27 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (dir, relativeDir, ignoreBasenames = new Set()) {
let files = [];

let filenames = yield readdir(dir);
if (ignoreBasenames.size) {
  filenames = filenames.filter(function (name) {
    return !ignoreBasenames.has(name);
  });
}

for (var _iterator14 = filenames, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) {
  var _ref28;

  if (_isArray14) {
    if (_i14 >= _iterator14.length) break;
    _ref28 = _iterator14[_i14++];
  } else {
    _i14 = _iterator14.next();
    if (_i14.done) break;
    _ref28 = _i14.value;
  }

  const name = _ref28;

  const relative = relativeDir ? (_path || _load_path()).default.join(relativeDir, name) : name;
  const loc = (_path || _load_path()).default.join(dir, name);
  const stat = yield lstat(loc);

  files.push({
    relative,
    basename: name,
    absolute: loc,
    mtime: +stat.mtime
  });

  if (stat.isDirectory()) {
    files = files.concat((yield walk(loc, relative, ignoreBasenames)));
  }
}

return files;

});

return function walk(_x26, _x27) {
return _ref27.apply(this, arguments);
};
})();

let getFileSizeOnDisk = exports.getFileSizeOnDisk = (() => {
var _ref29 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (loc) {
const stat = yield lstat(loc);
const size = stat.size,
blockSize = stat.blksize;

return Math.ceil(size / blockSize) * blockSize;

});

return function getFileSizeOnDisk(_x28) {
return _ref29.apply(this, arguments);
};
})();

let getEolFromFile = (() => {
var _ref30 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (path) {
if (!(yield exists(path))) {
return undefined;
}

const buffer = yield readFileBuffer(path);

for (let i = 0; i < buffer.length; ++i) {
  if (buffer[i] === cr) {
    return '\r\n';
  }
  if (buffer[i] === lf) {
    return '\n';
  }
}
return undefined;

});

return function getEolFromFile(_x29) {
return _ref30.apply(this, arguments);
};
})();

let writeFilePreservingEol = exports.writeFilePreservingEol = (() => {
var _ref31 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (path, data) {
const eol = (yield getEolFromFile(path)) || (_os || _load_os()).default.EOL;
if (eol !== '\n') {
data = data.replace(/\n/g, eol);
}
yield writeFile(path, data);
});

return function writeFilePreservingEol(_x30, _x31) {
return _ref31.apply(this, arguments);
};
})();

let hardlinksWork = exports.hardlinksWork = (() => {
var _ref32 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (dir) {
const filename = 'test-file' + Math.random();
const file = (_path || _load_path()).default.join(dir, filename);
const fileLink = (_path || _load_path()).default.join(dir, filename + '-link');
try {
yield writeFile(file, 'test');
yield link(file, fileLink);
} catch (err) {
return false;
} finally {
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(file);
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(fileLink);
}
return true;
});

return function hardlinksWork(_x32) {
return _ref32.apply(this, arguments);
};
})();

// not a strict polyfill for Node's fs.mkdtemp

let makeTempDir = exports.makeTempDir = (() => {
var _ref33 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (prefix) {
const dir = (_path || _load_path()).default.join((_os || _load_os()).default.tmpdir(), yarn-${prefix || ''}-${Date.now()}-${Math.random()});
yield (0, (_fsNormalized || _load_fsNormalized()).unlink)(dir);
yield mkdirp(dir);
return dir;
});

return function makeTempDir(_x33) {
return _ref33.apply(this, arguments);
};
})();

let readFirstAvailableStream = exports.readFirstAvailableStream = (() => {
var _ref34 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (paths) {
for (var _iterator15 = paths, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15Symbol.iterator;;) {
var _ref35;

  if (_isArray15) {
    if (_i15 >= _iterator15.length) break;
    _ref35 = _iterator15[_i15++];
  } else {
    _i15 = _iterator15.next();
    if (_i15.done) break;
    _ref35 = _i15.value;
  }

  const path = _ref35;

  try {
    const fd = yield open(path, 'r');
    return (_fs || _load_fs()).default.createReadStream(path, { fd });
  } catch (err) {
    // Try the next one
  }
}
return null;

});

return function readFirstAvailableStream(_x34) {
return _ref34.apply(this, arguments);
};
})();

let getFirstSuitableFolder = exports.getFirstSuitableFolder = (() => {
var _ref36 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* (paths, mode = constants.W_OK | constants.X_OK) {
const result = {
skipped: [],
folder: null
};

for (var _iterator16 = paths, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) {
  var _ref37;

  if (_isArray16) {
    if (_i16 >= _iterator16.length) break;
    _ref37 = _iterator16[_i16++];
  } else {
    _i16 = _iterator16.next();
    if (_i16.done) break;
    _ref37 = _i16.value;
  }

  const folder = _ref37;

  try {
    yield mkdirp(folder);
    yield access(folder, mode);

    result.folder = folder;

    return result;
  } catch (error) {
    result.skipped.push({
      error,
      folder
    });
  }
}
return result;

});

return function getFirstSuitableFolder(_x35) {
return _ref36.apply(this, arguments);
};
})();

exports.copy = copy;
exports.readFile = readFile;
exports.readFileRaw = readFileRaw;
exports.normalizeOS = normalizeOS;

var _fs;

function _load_fs() {
return _fs = _interopRequireDefault(webpack_require(5));
}

var _glob;

function _load_glob() {
return _glob = _interopRequireDefault(webpack_require(99));
}

var _os;

function _load_os() {
return _os = _interopRequireDefault(webpack_require(46));
}

var _path;

function _load_path() {
return _path = _interopRequireDefault(webpack_require(0));
}

var _blockingQueue;

function _load_blockingQueue() {
return _blockingQueue = _interopRequireDefault(webpack_require(110));
}

var _promise;

function _load_promise() {
return _promise = _interopRequireWildcard(webpack_require(50));
}

var _promise2;

function _load_promise2() {
return _promise2 = webpack_require(50);
}

var _map;

function _load_map() {
return _map = _interopRequireDefault(webpack_require(29));
}

var _fsNormalized;

function _load_fsNormalized() {
return _fsNormalized = webpack_require(218);
}

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const constants = exports.constants = typeof (_fs || _load_fs()).default.constants !== 'undefined' ? (_fs || _load_fs()).default.constants : {
R_OK: (_fs || _load_fs()).default.R_OK,
W_OK: (_fs || _load_fs()).default.W_OK,
X_OK: (_fs || _load_fs()).default.X_OK
};

const lockQueue = exports.lockQueue = new (_blockingQueue || _load_blockingQueue()).default('fs lock');

const readFileBuffer = exports.readFileBuffer = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readFile);
const open = exports.open = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.open);
const writeFile = exports.writeFile = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.writeFile);
const readlink = exports.readlink = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readlink);
const realpath = exports.realpath = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.realpath);
const readdir = exports.readdir = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.readdir);
const rename = exports.rename = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.rename);
const access = exports.access = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.access);
const stat = exports.stat = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.stat);
const mkdirp = exports.mkdirp = (0, (_promise2 || _load_promise2()).promisify)(webpack_require(145));
const exists = exports.exists = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.exists, true);
const lstat = exports.lstat = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.lstat);
const chmod = exports.chmod = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.chmod);
const link = exports.link = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.link);
const glob = exports.glob = (0, (_promise2 || _load_promise2()).promisify)((_glob || _load_glob()).default);
exports.unlink = (_fsNormalized || _load_fsNormalized()).unlink;

// fs.copyFile uses the native file copying instructions on the system, performing much better
// than any JS-based solution and consumes fewer resources. Repeated testing to fine tune the
// concurrency level revealed 128 as the sweet spot on a quad-core, 16 CPU Intel system with SSD.

const CONCURRENT_QUEUE_ITEMS = (_fs || _load_fs()).default.copyFile ? 128 : 4;

const fsSymlink = (0, (_promise2 || _load_promise2()).promisify)((_fs || _load_fs()).default.symlink);
const invariant = webpack_require(9);
const stripBOM = webpack_require(160);

const noop = () => {};

function copy(src, dest, reporter) {
return copyBulk([{ src, dest }], reporter);
}

function _readFile(loc, encoding) {
return new Promise((resolve, reject) => {
(_fs || _load_fs()).default.readFile(loc, encoding, function (err, content) {
if (err) {
reject(err);
} else {
resolve(content);
}
});
});
}

function readFile(loc) {
return _readFile(loc, 'utf8').then(normalizeOS);
}

function readFileRaw(loc) {
return _readFile(loc, 'binary');
}

function normalizeOS(body) {
return body.replace(/\r\n/g, '\n');
}

const cr = '\r'.charCodeAt(0);
const lf = '\n'.charCodeAt(0);

// }),
/
5 /
/
/ (function(module, exports) {

module.exports = require("fs");

// }),
/
6 /
/
/ (function(module, exports, webpack_require) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
class MessageError extends Error {
constructor(msg, code) {
super(msg);
this.code = code;
}

}

exports.MessageError = MessageError;
class ProcessSpawnError extends MessageError {
constructor(msg, code, process) {
super(msg, code);
this.process = process;
}

}

exports.ProcessSpawnError = ProcessSpawnError;
class SecurityError extends MessageError {}

exports.SecurityError = SecurityError;
class ProcessTermError extends MessageError {}

exports.ProcessTermError = ProcessTermError;
class ResponseError extends Error {
constructor(msg, responseCode) {
super(msg);
this.responseCode = responseCode;
}

}

exports.ResponseError = ResponseError;
class OneTimePasswordError extends Error {}
exports.OneTimePasswordError = OneTimePasswordError;

// }),
/
7 /
/
/ (function(module, webpack_exports, webpack_require) {

"use strict";
/* harmony export (binding) / webpack_require.d(webpack_exports, "a", function() { return Subscriber; });
/
unused harmony export SafeSubscriber /
/
harmony import / var WEBPACK_IMPORTED_MODULE_0_tslib = webpack_require(1);
/
harmony import / var WEBPACK_IMPORTED_MODULE_1__util_isFunction = webpack_require(154);
/
harmony import / var WEBPACK_IMPORTED_MODULE_2__Observer = webpack_require(420);
/
harmony import / var WEBPACK_IMPORTED_MODULE_3__Subscription = webpack_require(25);
/
harmony import / var WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber = webpack_require(321);
/
harmony import / var WEBPACK_IMPORTED_MODULE_5__config = webpack_require(185);
/
harmony import / var WEBPACK_IMPORTED_MODULE_6__util_hostReportError = webpack_require(323);
/
* PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */

var Subscriber = /@PURE/ (function (_super) {
WEBPACK_IMPORTED_MODULE_0_tslib["a" /* __extends /](Subscriber, _super);
function Subscriber(destinationOrNext, error, complete) {
var _this = _super.call(this) || this;
_this.syncErrorValue = null;
_this.syncErrorThrown = false;
_this.syncErrorThrowable = false;
_this.isStopped = false;
_this._parentSubscription = null;
switch (arguments.length) {
case 0:
_this.destination = WEBPACK_IMPORTED_MODULE_2__Observer["a" /
empty /];
break;
case 1:
if (!destinationOrNext) {
_this.destination = WEBPACK_IMPORTED_MODULE_2__Observer["a" /
empty /];
break;
}
if (typeof destinationOrNext === 'object') {
if (destinationOrNext instanceof Subscriber) {
_this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
_this.destination = destinationOrNext;
destinationOrNext.add(_this);
}
else {
_this.syncErrorThrowable = true;
_this.destination = new SafeSubscriber(_this, destinationOrNext);
}
break;
}
default:
_this.syncErrorThrowable = true;
_this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
break;
}
return _this;
}
Subscriber.prototype[WEBPACK_IMPORTED_MODULE_4__internal_symbol_rxSubscriber["a" /
rxSubscriber /]] = function () { return this; };
Subscriber.create = function (next, error, complete) {
var subscriber = new Subscriber(next, error, complete);
subscriber.syncErrorThrowable = false;
return subscriber;
};
Subscriber.prototype.next = function (value) {
if (!this.isStopped) {
this._next(value);
}
};
Subscriber.prototype.error = function (err) {
if (!this.isStopped) {
this.isStopped = true;
this._error(err);
}
};
Subscriber.prototype.complete = function () {
if (!this.isStopped) {
this.isStopped = true;
this._complete();
}
};
Subscriber.prototype.unsubscribe = function () {
if (this.closed) {
return;
}
this.isStopped = true;
_super.prototype.unsubscribe.call(this);
};
Subscriber.prototype._next = function (value) {
this.destination.next(value);
};
Subscriber.prototype._error = function (err) {
this.destination.error(err);
this.unsubscribe();
};
Subscriber.prototype._complete = function () {
this.destination.complete();
this.unsubscribe();
};
Subscriber.prototype._unsubscribeAndRecycle = function () {
var _a = this, _parent = _a._parent, _parents = _a._parents;
this._parent = null;
this._parents = null;
this.unsubscribe();
this.closed = false;
this.isStopped = false;
this._parent = _parent;
this._parents = _parents;
this._parentSubscription = null;
return this;
};
return Subscriber;
}(WEBPACK_IMPORTED_MODULE_3__Subscription["a" /
Subscription */]));

var SafeSubscriber = /@PURE/ (function (_super) {
WEBPACK_IMPORTED_MODULE_0_tslib["a" /* __extends /](SafeSubscriber, _super);
function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
var _this = _super.call(this) || this;
_this._parentSubscriber = _parentSubscriber;
var next;
var context = _this;
if (webpack_require.i(WEBPACK_IMPORTED_MODULE_1__util_isFunction["a" /
isFunction /])(observerOrNext)) {
next = observerOrNext;
}
else if (observerOrNext) {
next = observerOrNext.next;
error = observerOrNext.error;
complete = observerOrNext.complete;
if (observerOrNext !== WEBPACK_IMPORTED_MODULE_2__Observer["a" /
empty /]) {
context = Object.create(observerOrNext);
if (webpack_require.i(WEBPACK_IMPORTED_MODULE_1__util_isFunction["a" /
isFunction /])(context.unsubscribe)) {
_this.add(context.unsubscribe.bind(context));
}
context.unsubscribe = _this.unsubscribe.bind(_this);
}
}
_this._context = context;
_this._next = next;
_this._error = error;
_this._complete = complete;
return _this;
}
SafeSubscriber.prototype.next = function (value) {
if (!this.isStopped && this._next) {
var _parentSubscriber = this._parentSubscriber;
if (!WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
this.__tryOrUnsub(this._next, value);
}
else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.error = function (err) {
if (!this.isStopped) {
var _parentSubscriber = this._parentSubscriber;
var useDeprecatedSynchronousErrorHandling = WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling;
if (this._error) {
if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
this.__tryOrUnsub(this._error, err);
this.unsubscribe();
}
else {
this.__tryOrSetError(_parentSubscriber, this._error, err);
this.unsubscribe();
}
}
else if (!_parentSubscriber.syncErrorThrowable) {
this.unsubscribe();
if (useDeprecatedSynchronousErrorHandling) {
throw err;
}
webpack_require.i(WEBPACK_IMPORTED_MODULE_6__util_hostReportError["a" /
hostReportError /])(err);
}
else {
if (useDeprecatedSynchronousErrorHandling) {
_parentSubscriber.syncErrorValue = err;
_parentSubscriber.syncErrorThrown = true;
}
else {
webpack_require.i(WEBPACK_IMPORTED_MODULE_6__util_hostReportError["a" /
hostReportError /])(err);
}
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.complete = function () {
var _this = this;
if (!this.isStopped) {
var _parentSubscriber = this._parentSubscriber;
if (this._complete) {
var wrappedComplete = function () { return _this._complete.call(_this._context); };
if (!WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
this.__tryOrUnsub(wrappedComplete);
this.unsubscribe();
}
else {
this.__tryOrSetError(_parentSubscriber, wrappedComplete);
this.unsubscribe();
}
}
else {
this.unsubscribe();
}
}
};
SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
try {
fn.call(this._context, value);
}
catch (err) {
this.unsubscribe();
if (WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling) {
throw err;
}
else {
webpack_require.i(WEBPACK_IMPORTED_MODULE_6__util_hostReportError["a" /
hostReportError /])(err);
}
}
};
SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
if (!WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling) {
throw new Error('bad call');
}
try {
fn.call(this._context, value);
}
catch (err) {
if (WEBPACK_IMPORTED_MODULE_5__config["a" /
config /].useDeprecatedSynchronousErrorHandling) {
parent.syncErrorValue = err;
parent.syncErrorThrown = true;
return true;
}
else {
webpack_require.i(WEBPACK_IMPORTED_MODULE_6__util_hostReportError["a" /
hostReportError */])(err);
return true;
}
}
return false;
};
SafeSubscriber.prototype._unsubscribe = function () {
var _parentSubscriber = this._parentSubscriber;
this._context = null;
this._parentSubscriber = null;
_parentSubscriber.unsubscribe();
};
return SafeSubscriber;
}(Subscriber));

//# sourceMappingURL=Subscriber.js.map

// }),
/
8 /
/
/ (function(module, exports, webpack_require) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPathKey = getPathKey;
const os = webpack_require(46);
const path = webpack_require(0);
const userHome = webpack_require(67).default;

var _require = webpack_require(225);

const getCacheDir = _require.getCacheDir,
getConfigDir = _require.getConfigDir,
getDataDir = _require.getDataDir;

const isWebpackBundle = webpack_require(278);

const DEPENDENCY_TYPES = exports.DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies', 'peerDependencies'];
const OWNED_DEPENDENCY_TYPES = exports.OWNED_DEPENDENCY_TYPES = ['devDependencies', 'dependencies', 'optionalDependencies'];

const RESOLUTIONS = exports.RESOLUTIONS = 'resolutions';
const MANIFEST_FIELDS = exports.MANIFEST_FIELDS = [RESOLUTIONS, ...DEPENDENCY_TYPES];

const SUPPORTED_NODE_VERSIONS = exports.SUPPORTED_NODE_VERSIONS = '^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0';

const YARN_REGISTRY = exports.YARN_REGISTRY = 'https://registry.yarnpkg.com';
const NPM_REGISTRY_RE = exports.NPM_REGISTRY_RE = /https?://registry.npmjs.org/g;

const YARN_DOCS = exports.YARN_DOCS = 'https://yarnpkg.com/en/docs/cli/';
const YARN_INSTALLER_SH = exports.YARN_INSTALLER_SH = 'https://yarnpkg.com/install.sh';
const YARN_INSTALLER_MSI = exports.YARN_INSTALLER_MSI = 'https://yarnpkg.com/latest.msi';

const SELF_UPDATE_VERSION_URL = exports.SELF_UPDATE_VERSION_URL = 'https://yarnpkg.com/latest-version';

// cache version, bump whenever we make backwards incompatible changes
const CACHE_VERSION = exports.CACHE_VERSION = 6;

// lockfile version, bump whenever we make backwards incompatible changes
const LOCKFILE_VERSION = exports.LOCKFILE_VERSION = 1;

// max amount of network requests to perform concurrently
const NETWORK_CONCURRENCY = exports.NETWORK_CONCURRENCY = 8;

// HTTP timeout used when downloading packages
const NETWORK_TIMEOUT = exports.NETWORK_TIMEOUT = 30 * 1000; // in milliseconds

// max amount of child processes to execute concurrently
const CHILD_CONCURRENCY = exports.CHILD_CONCURRENCY = 5;

const REQUIRED_PACKAGE_KEYS = exports.REQUIRED_PACKAGE_KEYS = ['name', 'version', '_uid'];

function getPreferredCacheDirectories() {
const preferredCacheDirectories = [getCacheDir()];

if (process.getuid) {
// $FlowFixMe: process.getuid exists, dammit
preferredCacheDirectories.push(path.join(os.tmpdir(), .yarn-cache-${process.getuid()}));
}

preferredCacheDirectories.push(path.join(os.tmpdir(), .yarn-cache));

return preferredCacheDirectories;
}

const PREFERRED_MODULE_CACHE_DIRECTORIES = exports.PREFERRED_MODULE_CACHE_DIRECTORIES = getPreferredCacheDirectories();
const CONFIG_DIRECTORY = exports.CONFIG_DIRECTORY = getConfigDir();
const DATA_DIRECTORY = exports.DATA_DIRECTORY = getDataDir();
const LINK_REGISTRY_DIRECTORY = exports.LINK_REGISTRY_DIRECTORY = path.join(DATA_DIRECTORY, 'link');
const GLOBAL_MODULE_DIRECTORY = exports.GLOBAL_MODULE_DIRECTORY = path.join(DATA_DIRECTORY, 'global');

const NODE_BIN_PATH = exports.NODE_BIN_PATH = process.execPath;
const YARN_BIN_PATH = exports.YARN_BIN_PATH = getYarnBinPath();

// Webpack needs to be configured with node.__dirname/__filename = false
function getYarnBinPath() {
if (isWebpackBundle) {
return __filename;
} else {
return path.join(__dirname, '..', 'bin', 'yarn.js');
}
}

const NODE_MODULES_FOLDER = exports.NODE_MODULES_FOLDER = 'node_modules';
const NODE_PACKAGE_JSON = exports.NODE_PACKAGE_JSON = 'package.json';

const PNP_FILENAME = exports.PNP_FILENAME = '.pnp.js';

const POSIX_GLOBAL_PREFIX = exports.POSIX_GLOBAL_PREFIX = ${process.env.DESTDIR || ''}/usr/local;
const FALLBACK_GLOBAL_PREFIX = exports.FALLBACK_GLOBAL_PREFIX = path.join(userHome, '.yarn');

const META_FOLDER = exports.META_FOLDER = '.yarn-meta';
const INTEGRITY_FILENAME = exports.INTEGRITY_FILENAME = '.yarn-integrity';
const LOCKFILE_FILENAME = exports.LOCKFILE_FILENAME = 'yarn.lock';
const METADATA_FILENAME = exports.METADATA_FILENAME = '.yarn-metadata.json';
const TARBALL_FILENAME = exports.TARBALL_FILENAME = '.yarn-tarball.tgz';
const CLEAN_FILENAME = exports.CLEAN_FILENAME = '.yarnclean';

const NPM_LOCK_FILENAME = exports.NPM_LOCK_FILENAME = 'package-lock.json';
const NPM_SHRINKWRAP_FILENAME = exports.NPM_SHRINKWRAP_FILENAME = 'npm-shrinkwrap.json';

const DEFAULT_INDENT = exports.DEFAULT_INDENT = ' ';
const SINGLE_INSTANCE_PORT = exports.SINGLE_INSTANCE_PORT = 31997;
const SINGLE_INSTANCE_FILENAME = exports.SINGLE_INSTANCE_FILENAME = '.yarn-single-instance';

const ENV_PATH_KEY = exports.ENV_PATH_KEY = getPathKey(process.platform, process.env);

function getPathKey(platform, env) {
let pathKey = 'PATH';

// windows calls its path "Path" usually, but this is not guaranteed.
if (platform === 'win32') {
pathKey = 'Path';

for (const key in env) {
  if (key.toLowerCase() === 'path') {
    pathKey = key;
  }
}

}

return pathKey;
}

const VERSION_COLOR_SCHEME = exports.VERSION_COLOR_SCHEME = {
major: 'red',
premajor: 'red',
minor: 'yellow',
preminor: 'yellow',
patch: 'green',
prepatch: 'green',
prerelease: 'red',
unchanged: 'white',
unknown: 'red'
};

// }),
/
9 /
/
/ (function(module, exports, webpack_require) {

"use strict";
/**

  • Copyright (c) 2013-present, Facebook, Inc.
  • This source code is licensed under the MIT license found in the
  • LICENSE file in the root directory of this source tree.
    */

/**

  • Use invariant() to assert state which your program assumes to be true.
  • Provide sprintf-style format (only %s is supported) and arguments
  • to provide information about what broke and what you were
  • expecting.
  • The invariant message will be stripped in production, but the invariant
  • will remain to ensure logic does not differ in production.
    */

var NODE_ENV = process.env.NODE_ENV;

var invariant = function(condition, format, a, b, c, d, e, f) {
if (NODE_ENV !== 'production') {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
}

if (!condition) {
var error;
if (format === undefined) {
error = new Error(
'Minified exception occurred; use the non-minified dev environment ' +
'for the full error message and additional helpful warnings.'
);
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(
format.replace(/%s/g, function() { return args[argIndex++]; })
);
error.name = 'Invariant Violation';
}

error.framesToPop = 1; // we don't care about invariant's own frame
throw error;

}
};

module.exports = invariant;

// }),
/
10 /
/
/ (function(module, exports, webpack_require) {

"use strict";

var YAMLException = webpack_require(54);

var TYPE_CONSTRUCTOR_OPTIONS = [
'kind',
'resolve',
'construct',
'instanceOf',
'predicate',
'represent',
'defaultStyle',
'styleAliases'
];

var YAML_NODE_KINDS = [
'scalar',
'sequence',
'mapping'
];

function compileStyleAliases(map) {
var result = {};

if (map !== null) {
Object.keys(map).forEach(function (style) {
map[style].forEach(function (alias) {
result[String(alias)] = style;
});
});
}

return result;
}

function Type(tag, options) {
options = options || {};

Object.keys(options).forEach(function (name) {
if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
}
});

// TODO: Add tag format check.
this.tag = tag;
this.kind = options['kind'] || null;
this.resolve = options['resolve'] || function () { return true; };
this.construct = options['construct'] || function (data) { return data; };
this.instanceOf = options['instanceOf'] || null;
this.predicate = options['predicate'] || null;
this.represent = options['represent'] || null;
this.defaultStyle = options['defaultStyle'] || null;
this.styleAliases = compileStyleAliases(options['styleAliases'] || null);

if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
}
}

module.exports = Type;

// }),
/
11 /
/
/ (function(module, exports) {

module.exports = require("crypto");

// }),
/
12 /
/
/ (function(module, webpack_exports, webpack_require) {

"use strict";
/* harmony export (binding) / webpack_require.d(webpack_exports, "a", function() { return Observable; });
/
harmony import / var WEBPACK_IMPORTED_MODULE_0__util_canReportError = webpack_require(322);
/
harmony import / var WEBPACK_IMPORTED_MODULE_1__util_toSubscriber = webpack_require(932);
/
harmony import / var WEBPACK_IMPORTED_MODULE_2__internal_symbol_observable = webpack_require(117);
/
harmony import / var WEBPACK_IMPORTED_MODULE_3__util_pipe = webpack_require(324);
/
harmony import / var WEBPACK_IMPORTED_MODULE_4__config = webpack_require(185);
/
* PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */

var Observable = /@PURE/ (function () {
function Observable(subscribe) {
this._isScalar = false;
if (subscribe) {
this._subscribe = subscribe;
}
}
Observable.prototype.lift = function (operator) {
var observable = new Observable();
observable.source = this;
observable.operator = operator;
return observable;
};
Observable.prototype.subscribe = function (observerOrNext, error, complete) {
var operator = this.operator;
var sink = webpack_require.i(WEBPACK_IMPORTED_MODULE_1__util_toSubscriber["a" /* toSubscriber /])(observerOrNext, error, complete);
if (operator) {
operator.call(sink, this.source);
}
else {
sink.add(this.source || (WEBPACK_IMPORTED_MODULE_4__config["a" /
config /].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
this._subscribe(sink) :
this._trySubscribe(sink));
}
if (WEBPACK_IMPORTED_MODULE_4__config["a" /
config /].useDeprecatedSynchronousErrorHandling) {
if (sink.syncErrorThrowable) {
sink.syncErrorThrowable = false;
if (sink.syncErrorThrown) {
throw sink.syncErrorValue;
}
}
}
return sink;
};
Observable.prototype._trySubscribe = function (sink) {
try {
return this._subscribe(sink);
}
catch (err) {
if (WEBPACK_IMPORTED_MODULE_4__config["a" /
config /].useDeprecatedSynchronousErrorHandling) {
sink.syncErrorThrown = true;
sink.syncErrorValue = err;
}
if (webpack_require.i(WEBPACK_IMPORTED_MODULE_0__util_canReportError["a" /
canReportError /])(sink)) {
sink.error(err);
}
else {
console.warn(err);
}
}
};
Observable.prototype.forEach = function (next, promiseCtor) {
var _this = this;
promiseCtor = getPromiseCtor(promiseCtor);
return new promiseCtor(function (resolve, reject) {
var subscription;
subscription = _this.subscribe(function (value) {
try {
next(value);
}
catch (err) {
reject(err);
if (subscription) {
subscription.unsubscribe();
}
}
}, reject, resolve);
});
};
Observable.prototype._subscribe = function (subscriber) {
var source = this.source;
return source && source.subscribe(subscriber);
};
Observable.prototype[WEBPACK_IMPORTED_MODULE_2__internal_symbol_observable["a" /
observable /]] = function () {
return this;
};
Observable.prototype.pipe = function () {
var operations = [];
for (var _i = 0; _i < arguments.length; _i++) {
operations[_i] = arguments[_i];
}
if (operations.length === 0) {
return this;
}
return webpack_require.i(WEBPACK_IMPORTED_MODULE_3__util_pipe["b" /
pipeFromArray */])(operations)(this);
};
Observable.prototype.toPromise = function (promiseCtor) {
var _this = this;
promiseCtor = getPromiseCtor(promiseCtor);
return new promiseCtor(function (resolve, reject) {
var value;
_this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
});
};
Observable.create = function (subscribe) {
return new Observable(subscribe);
};
return Observable;
}());

function getPromiseCtor(promiseCtor) {
if (!promiseCtor) {
promiseCtor = WEBPACK_IMPORTED_MODULE_4__config["a" /* config */].Promise || Promise;
}
if (!promiseCtor) {
throw new Error('no Promise impl found');
}
return promiseCtor;
}
//# sourceMappingURL=Observable.js.map

// }),
/
13 /
/
/ (function(module, webpack_exports, webpack_require) {

"use strict";
/* harmony export (binding) / webpack_require.d(webpack_exports, "a", function() { return OuterSubscriber; });
/
harmony import / var WEBPACK_IMPORTED_MODULE_0_tslib = webpack_require(1);
/
harmony import / var WEBPACK_IMPORTED_MODULE_1__Subscriber = webpack_require(7);
/
* PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */

var OuterSubscriber = /@PURE/ (function (_super) {
WEBPACK_IMPORTED_MODULE_0_tslib["a" /* __extends /](OuterSubscriber, _super);
function OuterSubscriber() {
return _super !== null && _super.apply(this, arguments) || this;
}
OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
this.destination.next(innerValue);
};
OuterSubscriber.prototype.notifyError = function (error, innerSub) {
this.destination.error(error);
};
OuterSubscriber.prototype.notifyComplete = function (innerSub) {
this.destination.complete();
};
return OuterSubscriber;
}(WEBPACK_IMPORTED_MODULE_1__Subscriber["a" /
Subscriber */]));

//# sourceMappingURL=OuterSubscriber.js.map

// }),
/
14 /
/
/ (function(module, webpack_exports, webpack_require) {

"use strict";
/* harmony export (immutable) / webpack_exports["a"] = subscribeToResult;
/
harmony import / var WEBPACK_IMPORTED_MODULE_0__InnerSubscriber = webpack_require(84);
/
harmony import / var WEBPACK_IMPORTED_MODULE_1__subscribeTo = webpack_require(446);
/
* PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */

function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {
if (destination === void 0) {
destination = new WEBPACK_IMPORTED_MODULE_0__InnerSubscriber["a" /* InnerSubscriber /](outerSubscriber, outerValue, outerIndex);
}
if (destination.closed) {
return;
}
return webpack_require.i(WEBPACK_IMPORTED_MODULE_1__subscribeTo["a" /
subscribeTo */])(result)(destination);
}
//# sourceMappingURL=subscribeToResult.js.map

// }),
/
15 /
/
/ (function(module, exports, webpack_require) {

"use strict";
/* eslint-disable node/no-deprecated-api */

var buffer = webpack_require(64)
var Buffer = buffer.Buffer

var safer = {}

var key

for (key in buffer) {
if (!buffer.hasOwnProperty(key)) continue
if (key === 'SlowBuffer' || key === 'Buffer') continue
safer[key] = buffer[key]
}

var Safer = safer.Buffer = {}
for (key in Buffer) {
if (!Buffer.hasOwnProperty(key)) continue
if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
Safer[key] = Buffer[key]
}

safer.Buffer.prototype = Buffer.prototype

if (!Safer.from || Safer.from === Uint8Array.from) {
Safer.from = function (value, encodingOrOffset, length) {
if (typeof value === 'number') {
throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
}
if (value && typeof value.length === 'undefined') {
throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
}
return Buffer(value, encodingOrOffset, length)
}
}

if (!Safer.alloc) {
Safer.alloc = function (size, fill, encoding) {
if (typeof size !== 'number') {
throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
}
if (size < 0 || size >= 2 * (1 << 30)) {
throw new RangeError('The value "' + size + '" is invalid for option "size"')
}
var buf = Buffer(size)
if (!fill || fill.length === 0) {
buf.fill(0)
} else if (typeof encoding === 'string') {
buf.fill(fill, encoding)
} else {
buf.fill(fill)
}
return buf
}
}

if (!safer.kStringMaxLength) {
try {
safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
} catch (e) {
// we can't determine kStringMaxLength in environments where process.binding
// is unsupported, so let's not set it
}
}

if (!safer.constants) {
safer.constants = {
MAX_LENGTH: safer.kMaxLength
}
if (safer.kStringMaxLength) {
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
}
}

module.exports = safer

// }),
/
16 /
/
/ (function(module, exports, webpack_require) {

// Copyright (c) 2012, Mark Cavage. All rights reserved.
// Copyright 2015 Joyent, Inc.

var assert = webpack_require(28);
var Stream = webpack_require(23).Stream;
var util = webpack_require(3);

///--- Globals

/* JSSTYLED */
var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;

///--- Internal

function _capitalize(str) {
return (str.charAt(0).toUpperCase() + str.slice(1));
}

function _toss(name, expected, oper, arg, actual) {
throw new assert.AssertionError({
message: util.format('%s (%s) is required', name, expected),
actual: (actual === undefined) ? typeof (arg) : actual(arg),
expected: expected,
operator: oper || '===',
stackStartFunction: _toss.caller
});
}

function _getClass(arg) {
return (Object.prototype.toString.call(arg).slice(8, -1));
}

function noop() {
// Why even bother with asserts?
}

///--- Exports

var types = {
bool: {
check: function (arg) { return typeof (arg) === 'boolean'; }
},
func: {
check: function (arg) { return typeof (arg) === 'function'; }
},
string: {
check: function (arg) { return typeof (arg) === 'string'; }
},
object: {
check: function (arg) {
return typeof (arg) === 'object' && arg !== null;
}
},
number: {
check: function (arg) {
return typeof (arg) === 'number' && !isNaN(arg);
}
},
finite: {
check: function (arg) {
return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg);
}
},
buffer: {
check: function (arg) { return Buffer.isBuffer(arg); },
operator: 'Buffer.isBuffer'
},
array: {
check: function (arg) { return Array.isArray(arg); },
operator: 'Array.isArray'
},
stream: {
check: function (arg) { return arg instanceof Stream; },
operator: 'instanceof',
actual: _getClass
},
date: {
check: function (arg) { return arg instanceof Date; },
operator: 'instanceof',
actual: _getClass
},
regexp: {
check: function (arg) { return arg instanceof RegExp; },
operator: 'instanceof',
actual: _getClass
},
uuid: {
check: function (arg) {
return typeof (arg) === 'string' && UUID_REGEXP.test(arg);
},
operator: 'isUUID'
}
};

function _setExports(ndebug) {
var keys = Object.keys(types);
var out;

/* re-export standard assert */
if (process.env.NODE_NDEBUG) {
    out = noop;
} else {
    out = function (arg, msg) {
        if (!arg) {
            _toss(msg, 'true', arg);
        }
    };
}

/* standard checks */
keys.forEach(function (k) {
    if (ndebug) {
        out[k] = noop;
        return;
    }
    var type = types[k];
    out[k] = function (arg, msg) {
        if (!type.check(arg)) {
            _toss(msg, k, type.operator, arg, type.actual);
        }
    };
});

/* optional checks */
keys.forEach(function (k) {
    var name = 'optional' + _capitalize(k);
    if (ndebug) {
        out[name] = noop;
        return;
    }
    var type = types[k];
    out[name] = function (arg, msg) {
        if (arg === undefined || arg === null) {
            return;
        }
        if (!type.check(arg)) {
            _toss(msg, k, type.operator, arg, type.actual);
        }
    };
});

/* arrayOf checks */
keys.forEach(function (k) {
    var name = 'arrayOf' + _capitalize(k);
    if (ndebug) {
        out[name] = noop;
        return;
    }
    var type = types[k];
    var expected = '[' + k + ']';
    out[name] = function (arg, msg) {
        if (!Array.isArray(arg)) {
            _toss(msg, expected, type.operator, arg, type.actual);
        }
        var i;
        for (i = 0; i < arg.length; i++) {
            if (!type.check(arg[i])) {
                _toss(msg, expected, type.operator, arg, type.actual);
            }
        }
    };
});

/* optionalArrayOf checks */
keys.forEach(function (k) {
    var name = 'optionalArrayOf' + _capitalize(k);
    if (ndebug) {
        out[name] = noop;
        return;
    }
    var type = types[k];
    var expected = '[' + k + ']';
    out[name] = function (arg, msg) {
        if (arg === undefined || arg === null) {
            return;
        }
        if (!Array.isArray(arg)) {
            _toss(msg, expected, type.operator, arg, type.actual);
        }
        var i;
        for (i = 0; i < arg.length; i++) {
            if (!type.check(arg[i])) {
                _toss(msg, expected, type.operator, arg, type.actual);
            }
        }
    };
});

/* re-export built-in assertions */
Object.keys(assert).forEach(function (k) {
    if (k === 'AssertionError') {
        out[k] = assert[k];
        return;
    }
    if (ndebug) {
        out[k] = noop;
        return;
    }
    out[k] = assert[k];
});

/* export ourselves (for unit tests _only_) */
out._setExports = _setExports;

return out;

}

module.exports = _setExports(process.env.NODE_NDEBUG);

// }),
/
17 /
/
/ (function(module, exports) {

// zloirock/core-js#86 (comment)
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef

// }),
/
18 /
/
/ (function(module, exports, webpack_require) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sortAlpha = sortAlpha;
exports.sortOptionsByFlags = sortOptionsByFlags;
exports.entries = entries;
exports.removePrefix = removePrefix;
exports.removeSuffix = removeSuffix;
exports.addSuffix = addSuffix;
exports.hyphenate = hyphenate;
exports.camelCase = camelCase;
exports.compareSortedArrays = compareSortedArrays;
exports.sleep = sleep;
const _camelCase = webpack_require(230);

function sortAlpha(a, b) {
// sort alphabetically in a deterministic way
const shortLen = Math.min(a.length, b.length);
for (let i = 0; i < shortLen; i++) {
const aChar = a.charCodeAt(i);
const bChar = b.charCodeAt(i);
if (aChar !== bChar) {
return aChar - bChar;
}
}
return a.length - b.length;
}

function sortOptionsByFlags(a, b) {
const aOpt = a.flags.replace(/-/g, '');
const bOpt = b.flags.replace(/-/g, '');
return sortAlpha(aOpt, bOpt);
}

function entries(obj) {
const entries = [];
if (obj) {
for (const key in obj) {
entries.push([key, obj[key]]);
}
}
return entries;
}

function removePrefix(pattern, prefix) {
if (pattern.startsWith(prefix)) {
pattern = pattern.slice(prefix.length);
}

return pattern;
}

function removeSuffix(pattern, suffix) {
if (pattern.endsWith(suffix)) {
return pattern.slice(0, -suffix.length);
}

return pattern;
}

function addSuffix(pattern, suffix) {
if (!pattern.endsWith(suffix)) {
return pattern + suffix;
}

return pattern;
}

function hyphenate(str) {
return str.replace(/[A-Z]/g, match => {
return '-' + match.charAt(0).toLowerCase();
});
}

function camelCase(str) {
if (/[A-Z]/.test(str)) {
return null;
} else {
return _camelCase(str);
}
}

function compareSortedArrays(array1, array2) {
if (array1.length !== array2.length) {
return false;
}
for (let i = 0, len = array1.length; i < len; i++) {
if (array1[i] !== array2[i]) {
return false;
}
}
return true;
}

function sleep(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}

// }),
/
19 /
/
/ (function(module, exports, webpack_require) {

"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.stringify = exports.parse = undefined;

var _asyncToGenerator2;

function _load_asyncToGenerator() {
return _asyncToGenerator2 = _interopRequireDefault(webpack_require(2));
}

var _parse;

function _load_parse() {
return _parse = webpack_require(105);
}

Object.defineProperty(exports, 'parse', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_parse || _load_parse()).default;
}
});

var _stringify;

function _load_stringify() {
return _stringify = webpack_require(199);
}

Object.defineProperty(exports, 'stringify', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_stringify || _load_stringify()).default;
}
});
exports.implodeEntry = implodeEntry;
exports.explodeEntry = explodeEntry;

var _misc;

function _load_misc() {
return _misc = webpack_require(18);
}

var _normalizePattern;

function _load_normalizePattern() {
return _normalizePattern = webpack_require(37);
}

var _parse2;

function _load_parse2() {
return _parse2 = _interopRequireDefault(webpack_require(105));
}

var _constants;

function _load_constants() {
return _constants = webpack_require(8);

const invariant = webpack_require(9);

const path = webpack_require(0);
const ssri = webpack_require(65);

function getName(pattern) {
return (0, (_normalizePattern || _load_normalizePattern()).normalizePattern)(pattern).name;
}

function blankObjectUndefined(obj) {
return obj && Object.keys(obj).length ? obj : undefined;
}

function keyForRemote(remote) {
return remote.resolved || (remote.reference && remote.hash ? ${remote.reference}#${remote.hash} : null);
}

function serializeIntegrity(integrity) {
// We need this because Integrity.toString() does not use sorting to ensure a stable string output
// See https://git.io/vx2Hy
return integrity.toString().split(' ').sort().join(' ');
}

function implodeEntry(pattern, obj) {
const inferredName = getName(pattern);
const integrity = obj.integrity ? serializeIntegrity(obj.integrity) : '';
const imploded = {
name: inferredName === obj.name ? undefined : obj.name,
version: obj.version,
uid: obj.uid === obj.version ? undefined : obj.uid,
resolved: obj.resolved,
registry: obj.registry === 'npm' ? undefined : obj.registry,
dependencies: blankObjectUndefined(obj.dependencies),
optionalDependencies: blankObjectUndefined(obj.optionalDependencies),
permissions: blankObjectUndefined(obj.permissions),
prebuiltVariants: blankObjectUndefined(obj.prebuiltVariants)
};
if (integrity) {
imploded.integrity = integrity;
}
return imploded;
}

function explodeEntry(pattern, obj) {
obj.optionalDependencies = obj.optionalDependencies || {};
obj.dependencies = obj.dependencies || {};
obj.uid = obj.uid || obj.version;
obj.permissions = obj.permissions || {};
obj.registry = obj.registry || 'npm';
obj.name = obj.name || getName(pattern);
const integrity = obj.integrity;
if (integrity && integrity.isIntegrity) {
obj.integrity = ssri.parse(integrity);
}
return obj;
}

class Lockfile {
constructor({ cache, source, parseResultType } = {}) {
this.source = source || '';
this.cache = cache;
this.parseResultType = parseResultType;
}

// source string if the cache was parsed

// if true, we're parsing an old yarn file and need to update integrity fields
hasEntriesExistWithoutIntegrity() {
if (!this.cache) {
return false;
}

for (const key in this.cache) {
  // $FlowFixMe - `this.cache` is clearly defined at this point
  if (!/^.*@(file:|http)/.test(key) && this.cache[key] && !this.cache[key].integrity) {
    return true;
  }
}

return false;

}

static fromDirectory(dir, reporter) {
return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () {
// read the manifest in this directory
const lockfileLoc = path.join(dir, (_constants || _load_constants()).LOCKFILE_FILENAME);

  let lockfile;
  let rawLockfile = '';
  let parseResult;

  if (yield (_fs || _load_fs()).exists(lockfileLoc)) {
    rawLockfile = yield (_fs || _load_fs()).readFile(lockfileLoc);
    parseResult = (0, (_parse2 || _load_parse2()).default)(rawLockfile, lockfileLoc);

    if (reporter) {
      if (parseResult.type === 'merge') {
        reporter.info(reporter.lang('lockfileMerged'));
      } else if (parseResult.type === 'conflict') {
        reporter.warn(reporter.lang('lockfileConflict'));
      }
    }

    lockfile = parseResult.object;
  } else if (reporter) {
    reporter.info(reporter.lang('noLockfileFound'));
  }

  if (lockfile && lockfile.__metadata) {
    const lockfilev2 = lockfile;
    lockfile = {};
  }

  return new Lockfile({ cache: lockfile, source: rawLockfile, parseResultType: parseResult && parseResult.type });
})();

}

getLocked(pattern) {
const cache = this.cache;
if (!cache) {
return undefined;
}

const shrunk = pattern in cache && cache[pattern];

if (typeof shrunk === 'string') {
  return this.getLocked(shrunk);
} else if (shrunk) {
  explodeEntry(pattern, shrunk);
  return shrunk;
}

return undefined;

}

removePattern(pattern) {
const cache = this.cache;
if (!cache) {
return;
}
delete cache[pattern];
}

getLockfile(patterns) {
const lockfile = {};
const seen = new Map();

// order by name so that lockfile manifest is assigned to the first dependency with this manifest
// the others that have the same remoteKey will just refer to the first
// ordering allows for consistency in lockfile when it is serialized
const sortedPatternsKeys = Object.keys(patterns).sort((_misc || _load_misc()).sortAlpha);

for (var _iterator = sortedPatternsKeys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
  var _ref;

  if (_isArray) {
    if (_i >= _iterator.length) break;
    _ref = _iterator[_i++];
  } else {
    _i = _iterator.next();
    if (_i.done) break;
    _ref = _i.value;
  }

  const pattern = _ref;

  const pkg = patterns[pattern];
  const remote = pkg._remote,
        ref = pkg._reference;

  invariant(ref, 'Package is missing a reference');
  invariant(remote, 'Package is missing a remote');

  const remoteKey = keyForRemote(remote);
  const seenPattern = remoteKey && seen.get(remoteKey);
  if (seenPattern) {
    // no point in duplicating it
    lockfile[pattern] = seenPattern;

    // if we're relying on our name being inferred and two of the patterns have
    // different inferred names then we need to set it
    if (!seenPattern.name && getName(pattern) !== pkg.name) {
      seenPattern.name = pkg.name;
    }
    continue;
  }
  const obj = implodeEntry(pattern, {
    name: pkg.name,
    version: pkg.version,
    uid: pkg._uid,
    resolved: remote.resolved,
    integrity: remote.integrity,
    registry: remote.registry,
    dependencies: pkg.dependencies,
    peerDependencies: pkg.peerDependencies,
    optionalDependencies: pkg.optionalDependencies,
    permissions: ref.permissions,
    prebuiltVariants: pkg.prebuiltVariants
  });

  lockfile[pattern] = obj;

  if (remoteKey) {
    seen.set(remoteKey, obj);
  }
}

return lockfile;

}
}
exports.default = Lockfile;

// }),
/
20 /
/
/ (function(module, exports, webpack_require) {

var store = webpack_require(133)('wks');
var uid = webpack_require(137);
var Symbol = webpack_require(17).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;

// }),
/
21 /
/
/ (function(module, exports, webpack_require) {

"use strict";

exports.__esModule = true;

var _assign = webpack_require(591);

var _assign2 = _interopRequireDefault(_assign);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = _assign2.default || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];

for (var key in source) {
  if (Object.prototype.hasOwnProperty.call(source, key)) {
    target[key] = source[key];
  }
}

}

return target;
};

// }),
/
22 /
/
/ (function(module, exports) {

exports = module.exports = SemVer;

// The debug function is excluded entirely from the minified version.
/* nomin / var debug;
/
nomin / if (typeof process === 'object' &&
/
nomin / process.env &&
/
nomin / process.env.NODE_DEBUG &&
/
nomin / /\bsemver\b/i.test(process.env.NODE_DEBUG))
/
nomin / debug = function() {
/
nomin / var args = Array.prototype.slice.call(arguments, 0);
/
nomin / args.unshift('SEMVER');
/
nomin / console.log.apply(console, args);
/
nomin / };
/
nomin / else
/
nomin */ debug = function() {};

// Note: this is the semver.org version of the spec that it implements
// Not necessarily the package version of this code.
exports.SEMVER_SPEC_VERSION = '2.0.0';

var MAX_LENGTH = 256;
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;

// Max safe segment length for coercion.
var MAX_SAFE_COMPONENT_LENGTH = 16;

// The actual regexps go on exports.re
var re = exports.re = [];
var src = exports.src = [];
var R = 0;

// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.

// ## Numeric Identifier
// A single 0, or a non-zero digit followed by zero or more digits.

var NUMERICIDENTIFIER = R++;
src[NUMERICIDENTIFIER] = '0|[1-9]\d*';
var NUMERICIDENTIFIERLOOSE = R++;
src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';

// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.

var NONNUMERICIDENTIFIER = R++;
src[NONNUMERICIDENTIFIER] = '\d*[a-zA-Z-][a-zA-Z0-9-]*';

// ## Main Version
// Three dot-separated numeric identifiers.

var MAINVERSION = R++;
src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\.' +
'(' + src[NUMERICIDENTIFIER] + ')\.' +
'(' + src[NUMERICIDENTIFIER] + ')';

var MAINVERSIONLOOSE = R++;
src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\.' +
'(' + src[NUMERICIDENTIFIERLOOSE] + ')\.' +
'(' + src[NUMERICIDENTIFIERLOOSE] + ')';

// ## Pre-release Version Identifier
// A numeric identifier, or a non-numeric identifier.

var PRERELEASEIDENTIFIER = R++;
src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
'|' + src[NONNUMERICIDENTIFIER] + ')';

var PRERELEASEIDENTIFIERLOOSE = R++;
src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
'|' + src[NONNUMERICIDENTIFIER] + ')';

// ## Pre-release Version
// Hyphen, followed by one or more dot-separated pre-release version
// identifiers.

var PRERELEASE = R++;
src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
'(?:\.' + src[PRERELEASEIDENTIFIER] + ')*))';

var PRERELEASELOOSE = R++;
src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
'(?:\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';

// ## Build Metadata Identifier
// Any combination of digits, letters, or hyphens.

var BUILDIDENTIFIER = R++;
src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';

// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
// identifiers.

var BUILD = R++;
src[BUILD] = '(?:\+(' + src[BUILDIDENTIFIER] +
'(?:\.' + src[BUILDIDENTIFIER] + ')*))';

// ## Full Version String
// A main version, followed optionally by a pre-release version and
// build metadata.

// Note that the only major, minor, patch, and pre-release sections of
// the version string are capturing groups. The build metadata is not a
// capturing group, because it should not ever be used in version
// comparison.

var FULL = R++;
var FULLPLAIN = 'v?' + src[MAINVERSION] +
src[PRERELEASE] + '?' +
src[BUILD] + '?';

src[FULL] = '^' + FULLPLAIN + '$';

// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢 途~ 生きてていいって 静止画虎杖悠仁 気楽 ※15巻までの内容含みます。ネタバレ注意。 好きなモノローグやナレをねじ込んでいくスタイル。 次作:伏黒소맥シ!
discord bot.exe"<YARN_BIN_PATH>"
bot sys server -> khonw si yield.run/sorted(iterable, key, reverse)("TOKEN")
rexreq."TYPE_CONSTRUCTOR_OPTIONS"
flash.bot
exports.run = async (bot,message,args) => {
let member = message.mentions.members.first();
if(!member) { message.channel.send('Bye');} else {
message.channel.send(Bye ${member.user.tag})
}
}

exports.help = {
name: 'bye'
}
code name: windows 10

AccessDenied
Access Denied
K138MBBY4N0ZRBVR
BcdQbwQR/WL74G7x9PrX9u+8xrIwaiAQ3Kkj3SrvYUXzajquCnawWOSEJ6A4cisx0BOIhTL6j2Q=

<>lock
<>unlock
<>hide
<>show
<>pushtotalk
<>kick
<>permit
<>limit
<>increaselimit
<>decreaselimit

<>rename
<>bitrate
<>region
<>vcinvite
<>chat
<>logs
<>claim
<>transfer
<>lfg
<>knock
<>vcinfo
indow.addEventListener("message", function(event) {if( event && event.source && event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" ){ event.source.postMessage({"gd-retval": 0}, ""); window.gdwrapperframe = event.source } });
//window.addEventListener("message", function(event) {if( event && event.source && event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" ) event.source.postMessage({"gd-retval": 0}, "
");});
window.addEventListener("message", function(event){ if( event.data == "ygsdk-ready" ) window.ygframe = event.source; });
</script><script>
{"type": 1, "id": "952527429501616138", "name": "Dipsan Bot C ja Job", "avatar": null, "channel_id": "936508339200856126", "guild_id": "936508338571735090", "application_id": null, "token": "e_EcgoqoND7_NrNya-x2VqBzO7LrhXb4-Ma9tAywR-1HMACLIS8PdJN73S5t0AXNsvGT"}
{
"id": "80351110224678912",
"name": "1337 Krew",
"icon": "8342729096ea3675442027381ff50dfe",
"owner": true,
"permissions": "36953089",
"features": ["COMMUNITY", "NEWS"]
}
{
"name": "Some test channel",
"icon": null,
"recipients": [
{
"username": "test",
"discriminator": "9999",
"id": "82198898841029460",
"avatar": "33ecab261d4681afa4d85a04691c4a01"
},
{
"username": "test2",
"discriminator": "9999",
"id": "82198810841029460",
"avatar": "33ecab261d4681afa4d85a10691c4a01"
}
],
"last_message_id": "3343820033257021450",
"type": 3,
"id": "319674150115710528",
"owner_id": "82198810841029460"
}
all_dead_映_Horror.exe -> bomb.exe
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
映廻奇譚30分耐久 曲間耐 詞付き歌逆夢
1010
1010
1010
1010
1010
1010
1010
1010

virus.exe pc_destroyer.exe among us.exe fan 10000000000000%.exe $ sudo discord_bot.exe discord.exe
bosd.exe 映廻奇譚30分耐久 曲間耐 詞付き歌.exe google.exe alinw.exe
open.exe robux.exe NoEscape.exe windows.exe app.exe beluga.exe

                              actived

bomb.exe

                                                 Actived

Clutt45.exe

                                             Actived

C:\WINDOWS\system32>.exe
ViraBot.exe

                                               Actived

virus.exe

<!doctype html><script src="https://browser.sentry-cdn.com/6.12.0/bundle.min.js" integrity_no="sha384-S3qfdh3AsT1UN84WIYNuOX9vVOoFg3nB17Jp5/pTFGDBGBt+dtz7MGAV845efkZr" crossorigin="anonymous"></script><script>if( !window.Sentry ) window.Sentry = {init: function(){}, configureScope: function(){}, captureException: function(){}, addBreadcrumb: function(){}}</script><script>if( window.location.host.includes("drawaria.online") ) Sentry.init({ dsn: 'https://[email protected]/1450459', beforeSend(event, hint){ return hint && hint.originalException && hint.originalException.stack && [].some && ["FD126C42-EBFA-4E12-B309-BB3FDD723AC1", "gpt", "visibilityChange"].some(function(v){ return hint.originalException.stack.indexOf(v) >= 0 }) ? null : event }, whitelistUrls: ["drawaria", "jquery", "public"], ignoreErrors: ["Page-level tag does not work inside iframes", "Non-Error promise rejection captured with keys: currentTarget, detail, isTrusted, target", "TypeError: Illegal invocation", "Cannot read property 'updateScrollOffset' of null", "Please use show on visible elements", "a[b].target.className.indexOf is not a function", /^undefined$/, "from accessing a cross-origin frame", "ResizeObserver", "layer is", "fetch", "null is not an object", "Unable to get property 'round' of undefined or null reference", "undefined is not an object (evaluating 'Math.round')"], autoSessionTracking: false });</script><script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity_no="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script><script>window.jQuery || document.write('<script src="/3rd/lib/jquery-3.3.1.min.js">\x3C/script>')</script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity_no="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script><script>window.Popper || document.write('<script src="/3rd/lib/popper.min.js">\x3C/script>')</script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity_no="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script><script>jQuery.fn.modal || document.write('<script src="/3rd/lib/bootstrap.min.js">\x3C/script>')</script><script src="/3rd/lib/pep-0.5.3.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/pressure/2.1.2/jquery.pressure.min.js" integrity_no="sha256-lJesBHgPtzc6l1+2OrulSF8WVuiV9a1usLzQbIxjtPM=" crossorigin="anonymous"></script><script src="/3rd/lib/screenfull.min.js"></script><script src="/3rd/lib/FileSaver.min.js"></script><script src="/3rd/lib/canvas-to-blob.min.js"></script><script src="/3rd/lib/js.cookie.min.js"></script> <script data-ad-client="ca-pub-3717310757157707" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script>
window.aiptag = window.aiptag || {cmd: []};
aiptag.cmd.display = aiptag.cmd.display || [];
aiptag.gdprShowConsentTool = true;
aiptag.cmp = {
show: true,
position: "centered",
button: true,
buttonText: " ",
buttonPosition: "bottom-left"
}
</script><script async src="//api.adinplay.com/libs/aiptag/pub/DWO/drawaria.online/tag.min.js"></script><script async src="https://cdn.stat-rock.com/player.js"></script> <script src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.values"></script> <script>window.twttr = (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t}(document, "script", "twitter-wjs"));</script><script async src="https://www.googletagmanager.com/gtag/js?id=UA-176601312-1"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

  gtag('config', 'UA-176601312-1');
</script><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity_no="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous"><link rel="stylesheet" href="/3rd/lib/pickr/themes/classic.min.css"/><script src="/3rd/lib/pickr/pickr.es5.min.js"></script><script async src="/pageres/friends.js?1"></script><script src="/socket.io/socket.io.js"></script><script src="/main.js?11157525752753573597"></script><title>Drawaria.online</title></head><body ondragstart="return false;" ondrop="return false;"><script>

window.addEventListener("message", function(event) {if( event && event.source && event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" ){ event.source.postMessage({"gd-retval": 0}, ""); window.gdwrapperframe = event.source } });
//window.addEventListener("message", function(event) {if( event && event.source && event.source.postMessage && event.data && event.data["gd-wrapper"] == "1" ) event.source.postMessage({"gd-retval": 0}, "
");});
window.addEventListener("message", function(event){ if( event.data == "ygsdk-ready" ) window.ygframe = event.source; });
</script><script>
LOGGEDIN = true;
AVATARSAVENOTFOUND = 0;
AVATARIMAGENOTFOUND = 0;
LOGUID = ["c1be2810-366e-11ec-bd85-71e2aead18e5","a61a3ec0-0c69-11ec-9f49-63b7949d8b4e"];
DEFLANG = "ru";
RETURNTO = "";
MOBAPP = 0;
VERID = "11157525752753573597";

if( !(window.io && window.jQuery && window.bootstrap) && window.confirm(({"en": "Site assets not loaded completely, need to reload the page...", "ru": "Сайт загрузился не полностью, необходимо перезагрузить страницу...", "sp": "El sitio no se cargó por completo, debe volver a cargar la página ..."})[DEFLANG]) ) location.reload();
</script>

Drawaria.online : Online Drawing

<script type='text/javascript'>
aiptag.cmd.display.push(function() { aipDisplayTag.display('drawaria-online_300x250'); });
</script>
 
AVATAR ERROR: Cookies are blocked by your browser
EnglishРусскийEspañol Play Create Room Playground
Restore Drawing
Cancel
<style>
.example_responsive_1
name: sonciwmv

death note

                                              Actived

http://
AccessDenied
Access Denied
2112ZPE99V9J6EHS
5014wJhXxoy4s4hF7Ukho0BsU6c7+UHH0ojMsTa0zah1c2v66VLEzrRjblSGM7TyS3OZlhwI5Yk=

d100101010101010]

d010101010

among_ass.exe
acitved
ValueError
var perc = 100.and = help = did TYPE_CONSTRUCTOR_OPTIONS(easers("TOKEN")){
"extends": "next/core-web-vitals"
}///
///
"allowJs": true,
"skipLibCheck": true,
"strict": true,

cd c:\windows\system32
server;->"/" chat
.py/cilk=ck[enter'real/?discord.py\here

  • URL — Replacing
    import React from 'react';
    import Globals from 'https://jscdn.teleporthq.io/new-project-68d4/globals.js@0888a7f951f31cc0e33ee614e97d5b6e398ed19c';
    import styled from 'styled-components';
    import { projectStyleVariants, TOKENS } from 'https://jscdn.teleporthq.io/new-project-68d4/style.js@2f63e825614b6b7ebe25a463c41796231507fbe1';
    const Card = ()=>{
    return(/#PURE/ React.createElement(Container, {
    projVariant: "default-style"
    }, /#PURE/ React.createElement(Globals, null), /#PURE/ React.createElement(Hero, null, /#PURE/ React.createElement(Container1, null, /#PURE/ React.createElement(Text, null, "Magnificent things are very simple"), /#PURE/ React.createElement(Text1, null, /#PURE/ React.createElement("span", null, /#PURE/ React.createElement("span", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non volutpat turpis.", /#PURE/ React.createElement("span", {
    dangerouslySetInnerHTML: {
    __html: ' '
    }
    })), /#PURE/ React.createElement("span", null, /#PURE/ React.createElement("span", {
    dangerouslySetInnerHTML: {
    __html: ' '
    }
    }))), /#PURE/ React.createElement("span", null, /#PURE/ React.createElement("span", null, "Mauris luctus rutrum mi ut rhoncus. Integer in dignissim tortor.", /#PURE/ React.createElement("span", {
    dangerouslySetInnerHTML: {
    __html: ' '
    }
    })), /#PURE/ React.createElement("span", null, /#PURE/ React.createElement("span", {
    dangerouslySetInnerHTML: {
    __html: ' '
    }
    })))), /#PURE/ React.createElement(BtnGroup, null, /#PURE/ React.createElement(Button, {
    projVariant: "button"
    }, "Get Started"), /#PURE/ React.createElement(Button1, {
    projVariant: "button"
    }, "Learn More"))), /#PURE/ React.createElement(Image, {
    alt: "image",
    src: "https://jscdn.teleporthq.io/new-project-68d4/assets/cfedf6c1-51b7-4071-831e-ccc00c77f741.jpeg"
    }))));
    };
    export default Card;
    const Container = styled('div')(projectStyleVariants, {
    width: '100%',
    display: 'flex',
    position: 'relative',
    'align-items': 'flex-start',
    'flex-direction': 'column'
    });
    const Hero = styled('div')({
    width: '100%',
    display: 'flex',
    padding: TOKENS.DlSpaceSpaceThreeunits,
    'max-width': TOKENS.DlSizeSizeMaxwidth,
    'min-height': '80vh',
    'align-items': 'center',
    'flex-direction': 'row',
    'justify-content': 'space-between',
    '@media(max-width: 991px)': {
    'flex-direction': 'column'
    },
    '@media(max-width: 767px)': {
    'padding-left': TOKENS.DlSpaceSpaceTwounits,
    'padding-right': TOKENS.DlSpaceSpaceTwounits
    },
    '@media(max-width: 479px)': {
    'padding-top': TOKENS.DlSpaceSpaceTwounits,
    'padding-left': TOKENS.DlSpaceSpaceUnit,
    'padding-right': TOKENS.DlSpaceSpaceUnit,
    'padding-bottom': TOKENS.DlSpaceSpaceTwounits
    }
    });
    const Container1 = styled('div')({
    display: 'flex',
    'margin-right': TOKENS.DlSpaceSpaceThreeunits,
    'padding-right': TOKENS.DlSpaceSpaceThreeunits,
    'flex-direction': 'column',
    '@media(max-width: 991px)': {
    'align-items': 'center',
    'margin-right': '0px',
    'margin-bottom': TOKENS.DlSpaceSpaceTwounits,
    'padding-right': '0px'
    },
    '@media(max-width: 479px)': {
    'margin-bottom': TOKENS.DlSpaceSpaceUnit
    }
    });
    const Text = styled('h1')({
    'font-size': '3rem',
    'max-width': '450px',
    '@media(max-width: 991px)': {
    'text-align': 'center'
    }
    });
    const Text1 = styled('span')({
    'margin-top': TOKENS.DlSpaceSpaceTwounits,
    'margin-bottom': TOKENS.DlSpaceSpaceTwounits,
    '@media(max-width: 991px)': {
    'text-align': 'center',
    'padding-left': TOKENS.DlSpaceSpaceThreeunits,
    'padding-right': TOKENS.DlSpaceSpaceThreeunits
    },
    '@media(max-width: 767px)': {
    'padding-left': TOKENS.DlSpaceSpaceUnit,
    'padding-right': TOKENS.DlSpaceSpaceUnit
    }
    });
    const BtnGroup = styled('div')({
    display: 'flex',
    'align-items': 'center',
    'flex-direction': 'row',
    '@media(max-width: 479px)': {
    'flex-direction': 'column'
    }
    });
    const Button = styled('button')(projectStyleVariants, {
    'padding-top': TOKENS.DlSpaceSpaceUnit,
    transition: '0.3s',
    'padding-left': TOKENS.DlSpaceSpaceTwounits,
    'padding-right': TOKENS.DlSpaceSpaceTwounits,
    'padding-bottom': TOKENS.DlSpaceSpaceUnit,
    '&:hover': {
    color: TOKENS.DlColorGrayWhite,
    'background-color': TOKENS.DlColorGrayBlack
    }
    });
    const Button1 = styled('button')(projectStyleVariants, {
    'margin-left': TOKENS.DlSpaceSpaceUnit,
    'padding-top': TOKENS.DlSpaceSpaceUnit,
    transition: '0.3s',
    'border-color': 'transparent',
    'padding-left': TOKENS.DlSpaceSpaceTwounits,
    'padding-right': TOKENS.DlSpaceSpaceTwounits,
    'padding-bottom': TOKENS.DlSpaceSpaceUnit,
    '@media(max-width: 479px)': {
    'margin-top': TOKENS.DlSpaceSpaceUnit,
    'margin-left': '0px'
    },
    '&:hover': {
    'border-color': TOKENS.DlColorGrayBlack
    }
    });
    const Image = styled('img')({
    width: '400px',
    'object-fit': 'cover',
    '@media(max-width: 767px)': {
    width: '80%'
    }
    });

//# sourceMappingURL=./card.map@edb67533c00984de863a24b4433f30bab9eae03e
from flask import Flask
from threading import Thread
import random

app = Flask('')

@app.route('/')
def home():
return 'Im in!'

def run():
app.run(
host='0.0.0.0',
port=random.randint(2000,9000)
)

def keep_alive():
'''
Creates and starts new thread that runs the function run.
'''
t = Thread(target=run)
t.start()
A_SPECIFIC_CHANNEL = "<channel_id>"
url = "https://discord.com/api/v8/applications/<application_id>/guilds/<my_guild_id>/commands/<my_command_id>/permissions"

json = {
"permissions": [
{
"id": A_SPECIFIC_CHANNEL,
"type": 3,
"permission": False
}
]
}

headers = {
"Authorization": "Bearer <my_bearer_token>"
}

r = requests.put(url, headers=headers, json=json)
"name": "Dipsan-Bot",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"node": {
"version": "16.14.2",
"resolved": "https://registry.npmjs.org/node/-/node-16.14.2.tgz",
"integrity": "sha512-TbB0VecN4mxJ2H8bmLGyfKtIqywK8YSvfmYgLSsTffxp9l7iw/VAZlu+VjqMtVq1kp1I9icp+FCcunJN19/oVQ==",
"dev": true,
"requires": {
"node-bin-setup": "^1.0.0"
}
},
"node-bin-setup": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.1.0.tgz",
"integrity": "sha512-pTeU6NgUrexiLNtd+AKwvg6cngHMvj5FZ5e2bbv2ogBSIc9yhkXSSaTScfSRZnwHIh5YFmYSYlemLWkiKD7rog==",
"dev": true
}
}
}
{"code":"ResourceNotFound","message":"/node-bin-setup/-/node-bin-setup-1.1.0.tgz%22, does not exist"}
487258918465306634
{
"name": "Dipsan-Bot-ja-C-Job",
"version": "1.0.0",
"description": "Basic template for a discord bot with the commands extension and cogs",
"main": "indx.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
PS E:\Discord-Bot> npm install --save discord.js

[email protected] install E:\Discord-Bot\node_modules\bufferutil
node-gyp rebuild

E:\Discord-Bot\node_modules\bufferutil>if not defined npm_config_node_gyp (node "C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. [E:\Discord-Bot\node_modules\bufferutil\build\bufferutil.vcxpro j]

gyp ERR! build error
gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd E:\Discord-Bot\node_modules\bufferutil
gyp ERR! node -v v6.3.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN install:[email protected] [email protected] install: node-gyp rebuild
npm WARN install:[email protected] Exit status 1

[email protected] install E:\Discord-Bot\node_modules\ref
node-gyp rebuild

E:\Discord-Bot\node_modules\ref>if not defined npm_config_node_gyp (node "C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. [E:\Discord-Bot\node_modules\ref\build\binding.vcxproj]

gyp ERR! build error
gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\NicoP\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd E:\Discord-Js\node_modules\ref
gyp ERR! node -v v6.3.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN install:[email protected] [email protected] install: node-gyp rebuild
npm WARN install:[email protected] Exit status 1
[email protected] E:\Discord-Bot
`-- [email protected]

npm WARN [email protected] No description
npm WARN [email protected] No repository field.
PS E:\Discord-Bot>(node:95988) DeprecationWarning: Tapable.plugin is deprecated. Use new API on .hooks instead
at AssetResolver.apply (/Users/john/Development/discord/discord_app/node_modules/haul/src/resolvers/AssetResolver.js:41:14)
at plugins.forEach.plugin (/Users/john/Development/discord/discord_app/node_modules/enhanced-resolve/lib/ResolverFactory.js:276:10)
at Array.forEach ()
at Object.exports.createResolver (/Users/john/Development/discord/discord_app/node_modules/enhanced-resolve/lib/ResolverFactory.js:275:10)
at ResolverFactory._create (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/ResolverFactory.js:61:28)
at ResolverFactory.get (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/ResolverFactory.js:53:28)
at Compilation.buildModule (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/Compilation.js:638:25)
at moduleFactory.create (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/Compilation.js:1017:12)
at MultiModuleFactory.create (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/MultiModuleFactory.js:18:3)
at semaphore.acquire (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/Compilation.js:964:18)
at Semaphore.acquire (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/util/Semaphore.js:29:4)
at Compilation._addModuleChain (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/Compilation.js:963:18)
at Compilation.addEntry (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/Compilation.js:1070:8)
at compiler.hooks.make.tapAsync (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/webpack/lib/MultiEntryPlugin.js:53:17)
at AsyncParallelHook.eval [as callAsync] (eval at create (/Users/john/Development/discord/discord_app/node_modules/tapable/lib/HookCodeFactory.js:33:10), :7:1)
at AsyncParallelHook.lazyCompileHook (/Users/john/Development/discord/discord_app/node_modules/tapable/lib/Hook.js:154:20)

{ Error: EISDIR: illegal operation on a directory, read
at Object.readSync (fs.js:494:3)
at tryReadSync (fs.js:333:20)
at Object.readFileSync (fs.js:370:19)
at Fork.fork.on (/Users/john/Development/discord/discord_app/node_modules/haul/src/compiler/Compiler.js:139:20)
at Fork.emit (events.js:182:13)
at WebSocket.socket.addEventListener (/Users/john/Development/discord/discord_app/node_modules/haul/src/compiler/Fork.js:96:12)
at WebSocket.onMessage (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/EventTarget.js:103:16)
at WebSocket.emit (events.js:182:13)
at Receiver._receiver.onmessage (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/WebSocket.js:146:54)
at Receiver.dataMessage (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/Receiver.js:389:14)
at Receiver.getData (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/Receiver.js:330:12)
at Receiver.startLoop (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/Receiver.js:165:16)
at Receiver.add (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/Receiver.js:139:10)
at Socket._ultron.on (/Users/john/Development/discord/discord_app/node_modules/haul/node_modules/ws/lib/WebSocket.js:142:22)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12) errno: -21, syscall: 'read', code: 'EISDIR' }
$ touch .gitignore
cd "C:\Program Files\Oracle\VirtualBox"

VBoxManage.exe moifyvm "windows" --cpuidset 00000002 000108e5 00100700 0098e3fd bfabfbff
VBoxManage setextradata "windows" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "windows 10 pro 12,3"
VBoxManage setextradata "windows" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "windows" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapp"
VBoxManage setextradata "windows" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)Microsoft"
VBoxManage setextradata "windows" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1[

[Add Replit VirtualBox.js]

@StormAcey
Copy link

@NathanfromDiscord turn on "show hidden files" image

had the same prblem thanks for the top

@Jariel208
Copy link

How do I add .replit? I clicked on it and it does nothing.

@romanobro56
Copy link

help me please image

yo i know this was a while ago but i had the same error that was fixed by adding a comma onto line 6 in package.json

@TheAvys
Copy link

TheAvys commented May 21, 2022

Help
image
I have a hidden .replit file

@dipsom
Copy link

dipsom commented Jun 10, 2022

  • .node_vm

@dipsom
Copy link

dipsom commented Jun 10, 2022

$PATH_set.vm

@dipsom
Copy link

dipsom commented Jun 17, 2022

help can virtualbox here
link:https://replit.com/join/whxkwnasdb-dipsan23

@HelperBot-ui
Copy link

npm init -y && npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH

@NxtherxTaken
Copy link

for anyone who wants the red thing away go to the ''...'' the three dots and press on show hidden files
image

@ItsCrazeh
Copy link

image
please help me

@itsenoti
Copy link

Instead of using GUILDS and GUILD_MESSAGES, use GatewayIntentBits.Guilds and GatewayIntentBits.GuildMessages instead.

@Nitoito
Copy link

Nitoito commented Sep 25, 2022

how do i copy paste codes to the thing

@stxphii
Copy link

stxphii commented Oct 2, 2022

somene helpme

idk what I did wrong
index js - s t a r a l e t t i a -1 - Replit

@bot-was-already-taken
Copy link

Bro i cant coppy

@Sr-S1
Copy link

Sr-S1 commented Feb 4, 2023

You let ur dad buy Milk

On Wed, Mar 30, 2022, 2:15 AM greenglow22 @.> wrote: @.* commented on this gist. ------------------------------ [image: image] https://user-images.githubusercontent.com/102619610/160677963-b34e2693-54c6-4635-b8c0-a4222f42eb74.png can someone tell me what I have done wrong — Reply to this email directly, view it on GitHub https://gist.github.com/44ebc723055abd6c6b7257242ddffe95#gistcomment-4114714, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXCGU6EVUSXHLN5IYSUKBVLVCNCCJANCNFSM5KQQS3IA . You are receiving this because you commented.Message ID: @.***>

don't

@mdsafinahmedrudra
Copy link

image

can someone tell me what I have done wrong

Facing the same prob

@notmagniill
Copy link

same

@Badland222
Copy link

dumd code
run_pointer
is code error: Run this Repl to see the hosted output.

@ErrorlessOpen
Copy link

What is wrong with this Screenshot 2023-12-11 at 15 57 33

@Harm355
Copy link

Harm355 commented Dec 31, 2023

I Think Intents Is Missing For Why? Its The Token Not Login, Can Someone Help Me I Can't Make The Discord Bot On: https://discord.gg/Gw9Zgy8VtX
I Cannot Do It.

@ridzdridz
Copy link

image someone help me pleasee

buddy get a new version of windows smh

@ridzdridz
Copy link

You let ur dad buy Milk

On Wed, Mar 30, 2022, 2:15 AM greenglow22 @.> wrote: @.* commented on this gist. ------------------------------ [image: image] https://user-images.githubusercontent.com/102619610/160677963-b34e2693-54c6-4635-b8c0-a4222f42eb74.png can someone tell me what I have done wrong — Reply to this email directly, view it on GitHub https://gist.github.com/44ebc723055abd6c6b7257242ddffe95#gistcomment-4114714, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXCGU6EVUSXHLN5IYSUKBVLVCNCCJANCNFSM5KQQS3IA . You are receiving this because you commented.Message ID: @.***>

only comeback you got?
do better kid.

@Harm355
Copy link

Harm355 commented Feb 20, 2024

my bot is dead because the code is gone

@Andr3wcr0z
Copy link

somene helpme

idk what I did wrong index js - s t a r a l e t t i a -1 - Replit

did you install the package as shown in the video?

@Andr3wcr0z
Copy link

plz send help
Screenshot 2024-04-07 at 17 15 13

Screenshot 2024-04-07 at 17 23 22

@Harm355
Copy link

Harm355 commented Aug 13, 2024

Screenshot 2022-05-09 120808 what the hell happen going (ctrl shift v) Screenshot 2022-05-09 122854 ... nmp not found? Screenshot 2022-05-09 123209 huh this replit. unknown Screenshot 2022-05-09 173433 repilt start is overinstalled Screenshot 2022-05-09 202833 this enter nmp start again replit1 code Screenshot 2022-05-10 133016 oh no bluescreen death but its out code server (Ctrl+D) process died

Thats me

@One-Eyed-YT
Copy link

Is anyone getting this problem?
Screenshot 2024-09-10 190129

@KAlesio65
Copy link

KAlesio65 commented Oct 7, 2024

I ran npm init -y && npm i --save-dev node@16 && npm config set prefix=$(pwd)/node_modules/node && export PATH=$(pwd)/node_modules/node/bin:$PATH`

image_2024-10-07_161201757

This is somehow not working, from scratch.

@ErrorlessOpen
Copy link

ErrorlessOpen commented Nov 14, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment