[1.7.10]NEI & CCC в Eclipse

769
1
42
Всем доброго дня. Подскажите как впихнуть NEI и CCC в свою рабочую среду? Добавил в библиотеки и вот такой краш
Код:
[12:46:56] [main/INFO] [GradleStart]: Extra: []
[12:46:57] [main/INFO] [GradleStart]: Found and added coremod: ic2.core.coremod.IC2core
[12:46:57] [main/INFO] [GradleStart]: Found and added coremod: micdoodle8.mods.miccore.MicdoodlePlugin
[12:46:57] [main/INFO] [GradleStart]: Found and added coremod: codechicken.core.launch.CodeChickenCorePlugin
[12:46:57] [main/INFO] [GradleStart]: Found and added coremod: codechicken.nei.asm.NEICorePlugin
[12:46:57] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --accessToken, {REDACTED}, --assetIndex, 1.7.10, --assetsDir, C:/Users/murat/.gradle/caches/minecraft/assets, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[12:46:57] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[12:46:57] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[12:46:57] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[12:46:57] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[12:46:57] [main/INFO] [FML]: Forge Mod Loader version 7.99.36.1558 for Minecraft 1.7.10 loading
[12:46:57] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_80, running on Windows 8.1:amd64:6.3, installed at C:\Program Files\Java\jdk1.7.0_80\jre
[12:46:57] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[12:46:57] [main/INFO] [FML]: Found a command line coremod : codechicken.nei.asm.NEICorePlugin
[12:46:57] [main/WARN] [FML]: The coremod codechicken.nei.asm.NEICorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.Class.newInstance(Class.java:383)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at GradleStart.main(Unknown Source)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: ... 16 more
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: java.lang.NullPointerException
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: ... 18 more
[12:46:57] [main/ERROR] [FML]: An error occurred trying to configure the minecraft home at E:\Work Space\ModEditor\1.7.10\gradlew\eclipse\. for Forge Mod Loader
java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
 at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18) ~[NotEnoughItems-1.7.10-1.0.5.120-dev.jar:?]
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_80]
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[?:1.7.0_80]
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.7.0_80]
 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[?:1.7.0_80]
 at java.lang.Class.newInstance(Class.java:383) ~[?:1.7.0_80]
 at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501) ~[forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219) ~[forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90) [forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67) [forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34) [forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126) [forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [launchwrapper-1.12.jar:?]
 at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
 at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
 at GradleStart.main(Unknown Source) [start/:?]
Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
 at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[?:1.7.0_80]
 at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[?:1.7.0_80]
 ... 16 more
Caused by: java.lang.NullPointerException
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
 at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[?:1.7.0_80]
 at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[?:1.7.0_80]
 ... 16 more
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18)
Exception in thread "main" [12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.Class.newInstance(Class.java:383)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at GradleStart.main(Unknown Source)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: ... 16 more
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: java.lang.NullPointerException
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
[12:46:57] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: ... 18 more
---------------------------------------------------------------------------------------------------------------------------------------------
Решение:
1. Перед установкой вашей среды полностью измените все внутренности файла build.gradle на это
Код:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
 
    maven {
 name 'CB Maven FS'
 url "http://chickenbones.net/maven/"
   }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    version = "1.7.10-10.13.4.1558-1.7.10"
    runDir = "eclipse"
}

repositories {
   maven {
       name = "chickenbones"
       url = "http://chickenbones.net/maven/"
   }
}


dependencies {
 compile "codechicken:CodeChickenLib:1.7.10-1.1.3.136:dev"
 compile "codechicken:CodeChickenCore:1.7.10-1.0.6.43:dev"
 compile "codechicken:NotEnoughItems:1.7.10-1.0.4.106:dev"
 
}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
                
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}
Просто скопируйте это. не спрашивайте зачем.
2. Установите вашу среду командой gradlew setupDevWorkspace eclipse можно создать .bat файл в папке установки.
3. Когда все установится запустите эклипс и нажмите Run, высветится окошко с просьбой указать один путь, указывайте вот этот: User\.gradle\caches\minecraft\net\minecraftforge\forge\нужная версия\unpacked\conf
(Если не знаете какую выбирать, то просто кликайте на самую первую версию)
Ну и все, должно работать)
 
2,505
81
397
RE: NEI & CCC в Eclipse

dev версии добавлял?


ССL есть?
 
2,505
81
397
Еще, можешь сделать все автоматом через gradle. Добавь следующее в билд файл
Код:
repositories {
    maven {
        name 'CB Maven FS'
        url "http://chickenbones.net/maven/"
    }
}

dependencies {
    compile "codechicken:CodeChickenLib:1.7.10-1.1.3.136:dev"
    compile "codechicken:CodeChickenCore:1.7.10-1.0.6.43:dev"
    compile "codechicken:NotEnoughItems:1.7.10-1.0.4.106:dev"
}
 
769
1
42
Ну короче я поменял под свои версии и тоже краш
Код:
repositories {
   maven {
       name 'CB Maven FS'
       url "http://chickenbones.net/maven/"
   }
}

dependencies {
    compile "codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev"
    compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
}
Я раньше так прописывал
Код:
dependencies {
    compile files(
 "eclipse/libs/NotEnoughItems-1.7.10-1.0.5.120-dev.jar",
    "eclipse/libs/CodeChickenCore-1.7.10-1.0.4.29-dev.jar")

}
 
2,505
81
397
ССL нужна. Зачем выпилил?


Среду не забудь пересобрать.
 
769
1
42
Dahaka написал(а):
ССL нужна. Зачем выпилил?


Среду не забудь пересобрать.


У меня нет CCL, на оф. сайте нет dev версии. Проблема в самом запуске, как только я добавил в библиотеку и пытаюсь запустить майн, то выдает краш, который выше
 
2,505
81
397
Среду пересобери, алее. Автоматом скачается то, что указано в билд файле.


CCL не забудь вернуть.
 
769
1
42
Dahaka написал(а):
Среду пересобери, алее. Автоматом скачается то, что указано в билд файле.


CCL не забудь вернуть.


Ну вот, накатил дикий тупняк. Этой командой gradlew setupDevWorkspace eclipse ?
 
2,505
81
397
Ага. Можно еще очистить на всякий gradlew clean setupDevWorkspace eclipse
 
769
1
42
Dahaka написал(а):
Ага. Можно еще очистить на всякий gradlew clean setupDevWorkspace eclipse
Ну удалил я старую среду, установил новую, build файл оставил. Запускаю майн и ничего не скачалось


Те NEI и CCC исключил из библиотек
 
2,505
81
397
А, нет же. gradlew clean setupDecompWorkspace eclipse
Хотя может и твоей достаточно. Я все пересобираю обычно.


Скачаться должно на этапе сборки среды.
 
769
1
42
Консоль быстро закрылась с ошибкой, которую я даже не заметил


Так, очень странно
 
2,505
81
397
Перепроверь все.
Код:
repositories {
    maven {
        name = "chickenbones"
        url = "http://chickenbones.net/maven/"
    }
}

dependencies {
    compile "codechicken:CodeChickenLib:1.7.10-1.1.1.109:dev"
    compile "codechicken:CodeChickenCore:1.7.10-1.0.2.9:dev"
    compile "codechicken:NotEnoughItems:1.7.10-1.0.2.15:dev"
}


Это из ботании 1.7.10. Не заменяй версии на свои. Сначала попробуй так. Если что, подменишь потом на более новые.
 
769
1
42
С этим что делать?
22ab08fa1c8a1723e59851d26077171d-full.png
 
2,505
81
397
Указать путь до папки conf
User\.gradle\caches\minecraft\net\minecraftforge\forge\нужная версия\unpacked\conf
 
769
1
42
Ну охренеть
Код:
Caused by: java.lang.ClassNotFoundException: codechicken.lib.inventory.ContainerExtended


Вот полный билд файл
Код:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
 
    maven {
 name 'CB Maven FS'
 url "http://chickenbones.net/maven/"
   }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    version = "1.7.10-10.13.4.1558-1.7.10"
    runDir = "eclipse"
}

repositories {
   maven {
       name = "chickenbones"
       url = "http://chickenbones.net/maven/"
   }
}


dependencies {
    compile "codechicken:CodeChickenLib:1.7.10-1.1.3.136:dev"
    compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
    compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
                
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}


Ему ChikenChunks не нужен?
 
2,505
81
397
Проблема в версиях, наверное. Не перемешивай их. Возьми эти (из тинкера).
Код:
dependencies {
   compile "codechicken:CodeChickenLib:1.7.10-1.1.3.136:dev"
   compile "codechicken:CodeChickenCore:1.7.10-1.0.6.43:dev"
   compile "codechicken:NotEnoughItems:1.7.10-1.0.4.106:dev"
}


RonyC написал(а):
Ему ChikenChunks не нужен?
Нет.
 
769
1
42
ОБОЖЕМОЙ, оно работает!


Огромное спасибо за помощь, в шапку добавил инструкцию (ну мало ли)


Спрошу здесь, чтобы не засирать темами форум. А если у меня есть своя машинка, которая, например, дробит материалы, как можно, чтобы рецепт отображался с этой машинки?(например как в IC2 наводишь на предмет, нажимаешь R и он показывает рецепт с интерфейсом своей машинки)
 
Сверху