Android / Amazon Fire Stuck on building to Android Device

matthulm

Member
Hello,

I'm trying to build a test version of my game from my Windows 10 PC to a Google Pixel 3 with Android 10,

I've been researching for hours to no avail and I figured you guys could help by looking at the output, I've spotted a few errors but I have no clue what they mean

"cmd" /c subst Z: "C:\Users\Matth\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE"

elapsed time 00:00:00.0527842s for command "cmd" /c subst Z: "C:\Users\Matth\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE" started at 12/03/2019 16:34:33
"cmd" /c subst Y: "C:\Users\Matth\AppData\Local\GameMakerStudio2\GMS2TEMP"

elapsed time 00:00:00.0499707s for command "cmd" /c subst Y: "C:\Users\Matth\AppData\Local\GameMakerStudio2\GMS2TEMP" started at 12/03/2019 16:34:33
"cmd" /c subst X: "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.4.374"

elapsed time 00:00:00.0519697s for command "cmd" /c subst X: "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.4.374" started at 12/03/2019 16:34:33
Saving project to: C:\Users\Matth\Documents\GameMakerStudio2\spinny\spinny.yyp
"C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.4.374/bin/Igor.exe" -j=8 -options="C:\Users\Matth\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -v -- Android Run

Loaded Macros from C:\Users\Matth\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\spinny_40DD3E11\macros.json
Options: X:/bin\platform_setting_defaults.json
Options: C:\Users\Matth\AppData\Roaming/GameMakerStudio2\60syh6neal_2246194\local_settings.json
Options: C:\Users\Matth\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\spinny_40DD3E11\targetoptions.json
X://bin/GMAssetCompiler.exe /c /zpex /mv=1 /iv=0 /rv=0 /bv=0 /j=8 /gn="spinny" /td="Y:/" /cd="Z:/spinny_40DD3E11" /zpuf="C:\Users\Matth\AppData\Roaming/GameMakerStudio2\60syh6neal_2246194" /m=llvm-android /tgt=8 /llvmSource="X://yyc/" /nodnd /cfg="default" /fU="Z:/spinny_40DD3E11\functionsUsed.txt" /o="Y:/spinny_4B64DC18_YYC" /optionsini="Y:/spinny_4B64DC18_YYC\options.ini" /baseproject="X:/BaseProject\BaseProject.yyp" "C:\Users\Matth\Documents\GameMakerStudio2\spinny\spinny.yyp" /preprocess="Z:/spinny_40DD3E11"
Reading project file....C:\Users\Matth\Documents\GameMakerStudio2\spinny
Reading project file....X:\BaseProject
Reading config delta 'C:\Users\Matth\Documents\GameMakerStudio2\spinny\options\main\inherited\options_main.inherited.yy'
finished.


X://bin/GMAssetCompiler.exe DONE (0)
Release build
PlatformOptions
Options: Z:/spinny_40DD3E11\PlatformOptions.json
Options: Z:/spinny_40DD3E11\MainOptions.json
displayname
hostname
runtime
OptionsIni
PlatformOptions
X://bin/GMAssetCompiler.exe /c /zpex /mv=1 /iv=0 /rv=0 /bv=0 /j=8 /gn="spinny" /td="Y:/" /cd="Z:/spinny_40DD3E11" /zpuf="C:\Users\Matth\AppData\Roaming/GameMakerStudio2\60syh6neal_2246194" /m=llvm-android /tgt=8 /llvmSource="X://yyc/" /nodnd /cfg="default" /fU="Z:/spinny_40DD3E11\functionsUsed.txt" /o="Y:/spinny_4B64DC18_YYC" /optionsini="Y:/spinny_4B64DC18_YYC\options.ini" /baseproject="X:/BaseProject\BaseProject.yyp" "C:\Users\Matth\Documents\GameMakerStudio2\spinny\spinny.yyp" /arch=16 /bt=exe /rt=yyc
Reading project file....C:\Users\Matth\Documents\GameMakerStudio2\spinny
Reading project file....X:\BaseProject
Reading config delta 'C:\Users\Matth\Documents\GameMakerStudio2\spinny\options\main\inherited\options_main.inherited.yy'
finished.
Compile Constants...finished.
Remove DnD...finished.
Compile Scripts...finished.
Compile Objects...finished.
Compile Timelines...finished.
Compile Triggers...finished.
Compile Rooms...finished.
Compile Extensions...finished.
Global scripts...finished.
finished.
collapsing enums.
Final Compile...finished.
Writing Chunk... GEN8
option_game_speed=60
Writing Chunk... OPTN
Writing Chunk... LANG
Writing Chunk... EXTN
Writing Chunk... SOND
Writing Chunk... AGRP
Writing Chunk... SPRT
Writing Chunk... BGND
Writing Chunk... PATH
Writing Chunk... SCPT
Writing Chunk... GLOB
Writing Chunk... SHDR
Writing Chunk... FONT
Writing Chunk... TMLN
Writing Chunk... OBJT
Writing Chunk... ROOM
Writing Chunk... DAFL
Writing Chunk... EMBI
Writing Chunk... TPAGE
Texture Group - Default
Writing Chunk... TGIN
Writing Chunk... STRG
Writing Chunk... TXTR
0 Compressing texture... writing texture texture_0.png...
1 Compressing texture... writing texture texture_1.png...
Writing Chunk... AUDO
ClangExeLocation=C:\Android\sdk\ndk\20.1.5948944\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe
Using NDKDir = C:\Android\sdk\ndk\20.1.5948944
Using PlatformDir = C:\Android\sdk\ndk\20.1.5948944\platforms\android-29
Using ARM64ToolChain = C:\Android\sdk\ndk\20.1.5948944\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64
saving file Y:/spinny_4B64DC18_YYC\spinny.droid
Android NDK: android-14 is unsupported. Using minimum supported version android-16.
Android NDK: WARNING: APP_PLATFORM android-16 is higher than android:minSdkVersion 14 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-16. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.
[arm64-v8a] Compile++ : yoyo <= spinny.vars.cpp
[arm64-v8a] Install : libc++_shared.so => Y:/spinny_4B64DC18_YYC/lib/arm64-v8a/libc++_shared.so
[arm64-v8a] SharedLibrary : libyoyo.so
[arm64-v8a] Install : libyoyo.so => Y:/spinny_4B64DC18_YYC/lib/arm64-v8a/libyoyo.so
Stats : GMA : Elapsed=2716.7023
Stats : GMA : sp=7,au=1,bk=0,pt=0,sc=0,sh=0,fo=3,tl=0,ob=11,ro=2,da=0,ex=0,ma=8,fm=0xB00408600020


X://bin/GMAssetCompiler.exe DONE (0)
AndroidEnvironment
Manifest Permissions
Manifest Metadata
Check GML functions
Licensing
3
Copying X:/Android\runner\RootFiles\build.gradle to Z:/spinny_40DD3E11\Android\default\build.gradle...
Copying X:/Android\runner\RootFiles\gradle.properties to Z:/spinny_40DD3E11\Android\default\gradle.properties...
Copying X:/Android\runner\RootFiles\settings.gradle to Z:/spinny_40DD3E11\Android\default\settings.gradle...
59
Copying X:/Android\runner\ProjectFiles\build.gradle to Z:/spinny_40DD3E11\Android\default\com.company.game\build.gradle...
Copying X:/Android\runner\ProjectFiles\lint.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\lint.xml...
Copying X:/Android\runner\ProjectFiles\libs\ini4j-0.5.2.jar to Z:/spinny_40DD3E11\Android\default\com.company.game\libs\ini4j-0.5.2.jar...
Copying X:/Android\runner\ProjectFiles\libs\org.apache.http.legacy.jar to Z:/spinny_40DD3E11\Android\default\com.company.game\libs\org.apache.http.legacy.jar...
Copying X:/Android\runner\ProjectFiles\src\main\AndroidManifest.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\AndroidManifest.xml...
Copying X:/Android\runner\ProjectFiles\src\main\assets\splash.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\assets\splash.png...
Copying X:/Android\runner\ProjectFiles\src\main\java\com\yoyogames\runner\RunnerJNILib.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\yoyogames\runner\RunnerJNILib.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\AdvertisingBase.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\AdvertisingBase.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\DemoGLSurfaceView.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\DemoGLSurfaceView.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\DemoRenderer.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\DemoRenderer.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\DemoRendererGL2.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\DemoRendererGL2.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\ExtensionBase.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\ExtensionBase.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\IAdExt.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\IAdExt.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\IAdvertising.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\IAdvertising.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\IExtensionBase.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\IExtensionBase.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\IniBundle.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\IniBundle.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\ISocial.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\ISocial.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerActivity.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerActivity.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerAdExt.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerAdExt.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerApplication.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerApplication.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerKeyboardController.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerKeyboardController.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerSocial.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerSocial.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\RunnerVsyncHandler.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\RunnerVsyncHandler.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\Gamepad\Gamepad.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\Gamepad\Gamepad.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\Purchases\IRunnerBilling.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\Purchases\IRunnerBilling.java...
Copying X:/Android\runner\ProjectFiles\src\main\java\YYAndroidPackageDomain\YYAndroidPackageCompany\YYAndroidPackageProduct\Purchases\Null\NullBilling.java to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\java\com\company\game\Purchases\Null\NullBilling.java...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\arm64-v8a\libc++_shared.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\arm64-v8a\libc++_shared.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\arm64-v8a\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\arm64-v8a\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\armeabi\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\armeabi\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\armeabi-v7a\libc++_shared.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\armeabi-v7a\libc++_shared.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\armeabi-v7a\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\armeabi-v7a\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\mips\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\mips\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\mips64\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\mips64\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\x86\libc++_shared.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\x86\libc++_shared.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\x86\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\x86\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\x86_64\libc++_shared.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\x86_64\libc++_shared.so...
Copying X:/Android\runner\ProjectFiles\src\main\jniLibs\x86_64\libyoyo.so to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\jniLibs\x86_64\libyoyo.so...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-hdpi\icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-hdpi\icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-hdpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-hdpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-hdpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-hdpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-hdpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-hdpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-ldpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-ldpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-ldpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-ldpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-ldpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-ldpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-mdpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-mdpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-mdpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-mdpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-mdpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-mdpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xhdpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xhdpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xhdpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xhdpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xhdpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xhdpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxhdpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxhdpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxhdpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxhdpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxhdpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxhdpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxxhdpi-v26\adaptive_bg.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxxhdpi-v26\adaptive_bg.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxxhdpi-v26\adaptive_icon.png to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxxhdpi-v26\adaptive_icon.png...
Copying X:/Android\runner\ProjectFiles\src\main\res\drawable-xxxhdpi-v26\icon.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\drawable-xxxhdpi-v26\icon.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\layout\main.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\layout\main.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\layout\userpasslayout.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\layout\userpasslayout.xml...
Copying X:/Android\runner\ProjectFiles\src\main\res\values\strings.xml to Z:/spinny_40DD3E11\Android\default\com.company.game\src\main\res\values\strings.xml...
DoSplash
DoIcon
C:\WINDOWS\system32\cmd.exe /c "subst O: "Z:/spinny_40DD3E11\Android\default" && O: && cd "com.company.game" && "X:/Android\runner\gradle\gradlew" build assembleRelease -x lint "

FAILURE: Build failed with an exception.

* What went wrong:
Could not set process working directory to 'O:\com.company.game': could not set current directory (errno 3)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org


C:\WINDOWS\system32\cmd.exe exited with non-zero status (1)
elapsed time 00:00:07.2153309s for command "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.4.374/bin/Igor.exe" -j=8 -options="C:\Users\Matth\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -v -- Android Run started at 12/03/2019 16:34:33
"cmd" /c subst Z: /d

elapsed time 00:00:00.0479573s for command "cmd" /c subst Z: /d started at 12/03/2019 16:34:40
"cmd" /c subst Y: /d

elapsed time 00:00:00.0509702s for command "cmd" /c subst Y: /d started at 12/03/2019 16:34:40
"cmd" /c subst X: /d

elapsed time 00:00:00.0549693s for command "cmd" /c subst X: /d started at 12/03/2019 16:34:40
FAILED: Run Program Complete

Any help would be much appreciated! :)
 

matthulm

Member
These are the errors I've spotted

"Android NDK: android-14 is unsupported. Using minimum supported version android-16."
I've set my minimum SDK version to 16 already, unless there is something else causing this issue

"FAILURE: Build failed with an exception.

* What went wrong:
Could not set process working directory to 'O:\com.company.game': could not set current directory (errno 3)"
I've tried researching this error and have not found any solutions

"* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights."

This seems like it could help but I have no idea how to do this

 
Top