Jinja: FileSystemLoader рд╡рд┐рдВрдбреЛрдЬ рдкрде (рдмреИрдХрд╕реНрд▓реИрд╢) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рд╕рд┐рддре░ 2017  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ FileSystemLoader рдХреЛ рд╡рд┐рдВрдбреЛрдЬрд╝-рд╢реИрд▓реА ( \ рдХреЗ рд╕рд╛рде) рдФрд░ рдпреВрдирд┐рдХреНрд╕-рд╢реИрд▓реА ( / рдХреЗ рд╕рд╛рде) рдкрде рджреЛрдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░, FileSystemLoader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
jinjaEnvironment.get_template('.\source\architecture\ARM\ARMv6-M-ARMv7-M\bo ardTemplates\ARMv6-M-ARMv7-M.metadata')
рд╕рд╛рде
jinja2.exceptions.TemplateNotFound: .\source\architecture\ARM\ARMv6-M-ARMv7-M\bo ardTemplates\ARMv6-M-ARMv7-M.metadata

рдЬрдмрдХрд┐ рдпрд╣ jinjaEnvironment.get_template('.\source\architecture\ARM\ARMv6-M-ARMv7-M\bo ardTemplates\ARMv6-M-ARMv7-M.metadata'.replace('\\', '/')) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкреВрд░реНрдг рдЯреНрд░реЗрд╕рдмреИрдХ

Traceback (most recent call last):
  File "./scripts/generateBoard.py", line 186, in <module>
    metadata = jinjaEnvironment.get_template(metadataFile).render(dictionary = d
ictionary)
  File "C:\Python27\lib\site-packages\jinja2\environment.py", line 830, in get_t
emplate
    return self._load_template(name, self.make_globals(globals))
  File "C:\Python27\lib\site-packages\jinja2\environment.py", line 804, in _load
_template
    template = self.loader.load(self, name, globals)
  File "C:\Python27\lib\site-packages\jinja2\loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
  File "C:\Python27\lib\site-packages\jinja2\loaders.py", line 168, in get_sourc
e
    pieces = split_template_path(template)
  File "C:\Python27\lib\site-packages\jinja2\loaders.py", line 31, in split_temp
late_path
    raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: .\source\architecture\ARM\ARMv6-M-ARMv7-M\bo
ardTemplates\ARMv6-M-ARMv7-M.metadata

рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг

  • рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 2.7.12
  • рдЬрд┐рдВрдЬрд╛ рд╕рдВрд╕реНрдХрд░рдг: 2.9.6

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдмреЛрд▓реНрдб рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмреИрдХрд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ - рдХреБрдЫ рдЕрдиреНрдп рдкрд╛рдпрдерди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдЦреЛрдЬрдХрд░), рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рд╕реНрд▓реИрд╢ рд╣реЛрддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдмреИрдХрд╕реНрд▓реИрд╢)ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рд╕реНрд▓реИрд╢ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ ...

рдмреАрдЯреАрдбрдмреНрд▓реВ - рдореИрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬрд┐рдВрдЬрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрде рдирд╣реАрдВ рд╣реИрдВ (рднрд▓реЗ рд╣реА рд╡реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрде рдкрд░ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рд╡реЗ рд╣рдореЗрд╢рд╛ рдЖрдЧреЗ рдХреА рд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдмреЛрд▓реНрдб рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмреИрдХрд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ - рдХреБрдЫ рдЕрдиреНрдп рдкрд╛рдпрдерди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдЦреЛрдЬрдХрд░), рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рд╕реНрд▓реИрд╢ рд╣реЛрддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдмреИрдХрд╕реНрд▓реИрд╢)ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рд╕реНрд▓реИрд╢ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ ...

рдмреАрдЯреАрдбрдмреНрд▓реВ - рдореИрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@FreddieChopin
рдХреНрдпрд╛ рдпрд╣ рддрдп рд╣реИ? 2019 рдореЗрдВ рдЕрднреА рднреА рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдЬреЛ рдХрд░рдирд╛ рд╣реИ рд╡рд╣ рд╕рднреА \\ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ / рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рддрдп рд╣реИ?

"рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ!" (;

рдпрд╣ рд╡рд╛рдХрдИ рдЕрдЬреАрдм рд╣реИ! рдХреНрдпрд╛ рдЗрд╕реЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдмрджрд▓рд╛ рдпрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ) рдХреГрдкрдпрд╛?

рдкреАрдЖрд░ рд╕реНрд╡рд╛рдЧрдд (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП)

рдореИрдВрдиреЗ рдПрдХ рдкрд░ рд╢реБрд░реБрдЖрдд рдХреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓рд╛: https://github.com/pallets/jinja/blob/master/jinja2/loaders.py#L43 -L61

A very basic example for a loader that looks up templates on the file
system could look like this::
    from jinja2 import BaseLoader, TemplateNotFound
    from os.path import join, exists, getmtime
    class MyLoader(BaseLoader):
        def __init__(self, path):
            self.path = path
        def get_source(self, environment, template):
            path = join(self.path, template)
            if not exists(path):
                raise TemplateNotFound(template)
            mtime = getmtime(path)
            with file(path) as f:
                source = f.read().decode('utf-8')
            return source, path, lambda: mtime == getmtime(path)

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ os.path.join рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП/рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХреЛрдИ рдореБрджреНрджрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ?

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ '\' рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдкрде рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЯрд░реНрди рдкрде рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХрд╛ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди "рдУрдкрди" рдЬреИрд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╕реНрд▓реИрд╢ рдФрд░ рдмреИрдХрд╕реНрд▓реИрд╢ рджреЛрдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдХрднреА-рдХрднреА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛" рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╢рд╛рдпрдж рд╣рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдкрдереЛрдВ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА "рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрдереЛрдВ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд╕рдореНрдореЗрд▓рди" рдЪреАрдЬреЛрдВ рдХреА рддрд░рд╣ ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд┐рдиреНрдЬрд╛ 2 рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рдореНрдореЗрд▓рди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпреВрдирд┐рдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рд╕реНрдЯрд╛рд░реНрдЯрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдХреБрдЫ "рд╣реЗрдб рдЕрдк" рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ "рдкрде" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдУрдПрд╕ рдкрде рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ "/" рд╡рд┐рднрд╛рдЬрдХ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рд▓реЗрдХрд┐рди loaders.get_source() рдореЗрдВ, self.searchpath рдпрд╣ рднреА рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдкрде рд╡рд┐рднрд╛рдЬрдХ рд╣рдореЗрд╢рд╛ "/" рд╣реЛрддрд╛ рд╣реИред

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрде рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ OS рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рд╡рд┐рд╣рд┐рдд рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдУрдПрд╕ рдкрде рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдЦреЛрдЬрдкрде рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЬрд╣рд╛рдВ рдУрдПрд╕ рдкрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

    def get_source(self, environment, template):
        _searchpaths = self.searchpath
        if path.sep != '/':
            template = template.replace('/', path.sep)
            _searchpaths = [p.replace('/', path.sep) for p in self.searchpath]
        pieces = os.path.split(template)
        for searchpath in _searchpaths:
            # Existing code continues here ...

рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ 10/рдкрд╛рдпрдерди 2.7 рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реА "рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╣реАрдВ рдорд┐рд▓реА" рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

priestc picture priestc  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harobed picture harobed  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

humiaozuzu picture humiaozuzu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

navilan picture navilan  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mtrstudio picture mtrstudio  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ