Ubuntu runs great on Mesmerize! - Samsung Mesmerize

(Ergh. Link won't come through since I'm new. The tutorial to install Ubuntu on the Nexus One on the nexusonehacks website is the one i'm referring to)
Following this tutorial, Ubuntu installed perfectly on my Mez. No problems whatsoever! Just need to root the phone (I rooted with z4root if it matters).
Couldn't find any info on the MezBuntu combo, so I figured I'd post my experience with it here.. if it's already been known, sorry. Haha!
First post here btw

Post the link to this if you can or type it if you have problems as I would like to look at this thanks.

http://nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-nexus-oneandroid/

-ignore, forum is being retarded-

I've spent a lot of time this evening getting some stuff added into this and tweaked tonight. I'm going to keep working a little more on this and then host my own copy so people don't have to jump through so many hoops to use it.

I can't post the link since I have less than 8 posts.. anyways, msullivan, I had no trouble with it at all. Didn't have to do any changes whatsoever. If you mean making it less complicated, then ignore me. Haha

Do you need adb to do it or can I just do it through android terminal?
Using my computers a pain lol
Sent from my SPH-D700 using XDA App

I'm assuming you need ADB, but it might work through the terminal.. I did it through ADB and had no problems whatsoever so I'd do it ADB just to be safe.

You don't need ADB, you can do most of it through a terminal emulator app. First enable WiFi and find out the WiFi IP address. Follow all the guide steps until you get to the part about finally seeing "[email protected]:/#"
Then issue the commands:
Code:
apt-get update
apt-get install openssh-server nano
service ssh start
passwd root
After that last command you'll be asked to set a password for the root account, do something simple to type on the android keyboard, like 'qwerty'.
Now go to a computer and SSH into your phone via PuTTY or whatever your favorite SSH client app is. Now it will be WAY easier to install things via apt, get the GUI running from the howto guide, etc etc. Also then you'll have a real file editor (nano) to work inside of, so you can edit the config files (such as 'bashrc' without having to do very complicated cat commands. This is how I performed my setup and it worked flawlessly. Note that if you set it up to create a VNC session for you automatically in the bashrc, you'll really feel the slowdown. In my tweaked version (which, like I said, I'll release on here soon), I have created a simple prompt on login that asks if you want to create a VNC session or not. That way if you are just there for command-line you don't have to eat the phone's RAM away.

msullivan said:
You don't need ADB, you can do most of it through a terminal emulator app. First enable WiFi and find out the WiFi IP address. Follow all the guide steps until you get to the part about finally seeing "[email protected]:/#"
Then issue the commands:
Code:
apt-get update
apt-get install openssh-server nano
service ssh start
passwd root
After that last command you'll be asked to set a password for the root account, do something simple to type on the android keyboard, like 'qwerty'.
Now go to a computer and SSH into your phone via PuTTY or whatever your favorite SSH client app is. Now it will be WAY easier to install things via apt, get the GUI running from the howto guide, etc etc. Also then you'll have a real file editor (nano) to work inside of, so you can edit the config files (such as 'bashrc' without having to do very complicated cat commands. This is how I performed my setup and it worked flawlessly. Note that if you set it up to create a VNC session for you automatically in the bashrc, you'll really feel the slowdown. In my tweaked version (which, like I said, I'll release on here soon), I have created a simple prompt on login that asks if you want to create a VNC session or not. That way if you are just there for command-line you don't have to eat the phone's RAM away.
Click to expand...
Click to collapse
What exactly did you do to get your tweaked version? Just wondering as I might give this a try

droidzach said:
What exactly did you do to get your tweaked version? Just wondering as I might give this a try
Click to expand...
Click to collapse
I didn't 'get' it, I just added some stuff like auto-starting SSH and a prompt asking whether or not you want a VNC service started. If you or others are still interested I can probably get it posted.

msullivan said:
I didn't 'get' it, I just added some stuff like auto-starting SSH and a prompt asking whether or not you want a VNC service started. If you or others are still interested I can probably get it posted.
Click to expand...
Click to collapse
Yeah that's what I meant. Ill see if I get around to getting ubuntu running and play with it then maybe I'll ask you what you did if I'm gonna actually use it. Thanks

Related

Linux applications ported to Android

Hi all of you, XDA fans!
After googling and looking in XDA forums, I was not able to find any ways to port linux apps to Android and was wondering if it was even possible.
Knowing that Android runs on 2.6.25 kernel, I thought that maybe it was possible.
I recently purchased a G1, successfully rooted it, and now am looking for ways to port linux apps to Android.
Is there a way to build apps from source code on Android, using the build tools provided with desktop distros? (I am using Ubuntu atm).
Anybody want to share some lights on this?
I'll keep you posted if I find anything intresting...
XDA ROCKS!!!
I'm looking into this myself, especially with respect to vlc, mplayer, and some console emulators...all of which have been compiled for ARM before, most successfully on the GP2X handheld.
Cross-compiling apps on an Ubuntu system is possible, but I'm not sure how well compiled apps will work with the Android framebuffer. There's also no x-windows system, so you know graphical apps that need it won't cut it at all.
Let us know what you find out.
Found this: Debian on Android
Hey i found this, Thought it might be intresting to look into this.
Debian & Android Together on G1
It's a guide to have Debian running alongside android, at least for what I understand...
I haven't tried yet since I have rooted rc8 and it's written for rc29/Mrc30, but that seems like a good solution.
Would be nice to be able to compile on android rather than on eclipse on ubuntu...
I've got no programming knowledge, that's why I'm looking for a solution allowing to compile directly on android...
"There's also no x-windows system, so you know graphical apps that need it won't cut it at all."
I was thinking as an experience to compile aircrack-ng, and it has no gui... The hardware might not support it but tha g1 might be able to handle it.
Yeah I wanted to compile the No-IP app for the phone so I could know what the IP address of my phone was on Tmo's network. That way I could run a webserver on my phone (apache anyone?). Does Tmo have firewalls in place to prevent this type of thing?
efbenson said:
Yeah I wanted to compile the No-IP app for the phone so I could know what the IP address of my phone was on Tmo's network. That way I could run a webserver on my phone (apache anyone?). Does Tmo have firewalls in place to prevent this type of thing?
Click to expand...
Click to collapse
enable telnetd from terminal and see if you can telnet from your computer to it via 3G (i.e. your wireless computer ---> G1)
My G1's edge ip is 25.97.51.2XX tried to telnet in, host unreachable. Did a traceroute from both my web server and home computer, both showed that the 3rd hop and all hops after that did not respond, and as expected ICMP echo (ping) sent to the phone timed out. Therefor we can i think say that T-mobile was not dumb and put a firewall up as any network administrator would. Gonna double check the IP of my G1 and i'll get back if it figure out my ip is different or something.
EDIT: pinged my router this time, got the IP 208.54.4.61, still same story times out and my G1 died so im going to reboot it and plug it in to try again.
well i'm sure t-mobile was wiser on that end, but did you try telnetting on port 80? also if you were to get a webserver running on your g1, you could always just use a non-standard port (81?) and just use a service like dyndns to control the port redirect, since i'm assuming they're already managing the dyndns updates.
rak500 said:
Hey i found this, Thought it might be intresting to look into this.
Debian & Android Together on G1
It's a guide to have Debian running alongside android, at least for what I understand...
I haven't tried yet since I have rooted rc8 and it's written for rc29/Mrc30, but that seems like a good solution.
Click to expand...
Click to collapse
I actually just got Deb working alongside Android (not terribly difficult but I did have some wonky-ness getting ext2.ko insmodded).
Having RC30 on my phone makes me really miss ADP1
deprecate said:
I actually just got Deb working alongside Android (not terribly difficult but I did have some wonky-ness getting ext2.ko insmodded).
Having RC30 on my phone makes me really miss ADP1
Click to expand...
Click to collapse
If you have JF 1.3+ you don't need to insmod ext2.ko. Just type "busybox insmod ext2".
deprecate said:
I actually just got Deb working alongside Android (not terribly difficult but I did have some wonky-ness getting ext2.ko insmodded).
Having RC30 on my phone makes me really miss ADP1
Click to expand...
Click to collapse
Do you think I can have it working on my rooted UK RC8?
I want to try it but it seems the configuration are slightly different for RC19 and RC29 according to the tutorial, so I thought it might be different on RC8 too.
I tried the web server in the market, didn't seem to work on edge
I'm not quite sure but I believe that T-mobile's VPN add-on might provide an externally accessible IP.
does anyone know if you can compile samba for the g1 ?
I've never dealt with linux on anything besides x86 and x64, so forgive me if this is stupid, but what about running gentoo on the G1 here? Seems to me that portage for ARM might be a little bit better for the G1 than the Debian repositories.
Although, NONE of us will be excited about having our G1 churning away for hours/days just to get Xorg compiled, as well as the headaches associated with installing and configuring gentoo.
I'm sure someone's thought of this, and Debian is pretty great anyway, just thought I'd put this out there.
kash04 said:
does anyone know if you can compile samba for the g1 ?
Click to expand...
Click to collapse
I am using Samba by way of Debian. So, yeah, it's possible.
DDM123 said:
I've never dealt with linux on anything besides x86 and x64, so forgive me if this is stupid, but what about running gentoo on the G1 here? Seems to me that portage for ARM might be a little bit better for the G1 than the Debian repositories.
Although, NONE of us will be excited about having our G1 churning away for hours/days just to get Xorg compiled, as well as the headaches associated with installing and configuring gentoo.
I'm sure someone's thought of this, and Debian is pretty great anyway, just thought I'd put this out there.
Click to expand...
Click to collapse
It's not stupid. If it works for you and is to your liking, go for it. It is debatable, however, whether portage (as good as it is) is any better for the G1 than Debian's packaging system. Packages compiled for the ARM architecture are already optimized for ARM processors. There wouldn't be as much self-compiling gain in this architecture as there would be optimizing between i386, i686, amd-64, etc. You'd be doing a lot of work and wasting a lot of time having portage compile your apps...and you'd have very little pluses to show for it.
Oh ok, I just thought that many apps were being compiled manually and portage might make some of that easier. I figured there wouldn't be any speed gains over Debian or other binary-based distros, and the barebones installation of gentoo is absolute hell, but I hoped it might get us into full-blown X quicker somehow.
It could definitely work with Portage. Keep in mind, though, that apt-get under Debian *can* download and build the source into a package automatically as well.
Web Server on TMO
Hey guys,
I'm new on XDA, getting my galaxy S tomorrow, I was a nokia fan up untill maemo 5 and the N900...
Anyway, one thing to remember is - Cellular Operators usually manage their own IP address pools, they don't give "Real" IP addresses to cellular phone, but rather use NAT services and all sort of nasty hacks to the IP system.
Therefore, in order for port 80 (http web server) to work on your server, it's not enough to just run it and get the IP, you also need the provider/operator to forward TCP packets coming to your External IP on port 80 to be forwarded to your internal IP > to your phone.
This, will never happen. If it will, you will get charged heavily for this as it will increase traffic and allow upstream traffic to your phone, and also risk your phone to potential hackers.
Edit : And I just noticed I resurrected an almost 2 years old thread Oopsy.
efbenson said:
Yeah I wanted to compile the No-IP app for the phone so I could know what the IP address of my phone was on Tmo's network. That way I could run a webserver on my phone (apache anyone?). Does Tmo have firewalls in place to prevent this type of thing?
Click to expand...
Click to collapse
get dyndns account there is an app on the market that will sync it.

Connect to adhoc Wifi network

Hi,
I need the captivate to be able to connect to a adhoc wifi network created using my laptop. However, android doesn't seem to be supporting it, just access point networks. Has anyone tried this, any success?
Searching revealed one thread where a guy modified some code on an htc phone, and got it to work, but seemed a little dated. Not sure if that would work with the android 2.1 and the Samsung phone.
Help appreciated.
The Captivate can connect to ad-hoc networks, but not through the native GUI interface. I tested mine via adb shell issuing some iwconfig commands via script to connect to a MyWi router on a friend's iPad. It's buggy, to say the least..
agentdr8 said:
The Captivate can connect to ad-hoc networks, but not through the native GUI interface. I tested mine via adb shell issuing some iwconfig commands via script to connect to a MyWi router on a friend's iPad. It's buggy, to say the least..
Click to expand...
Click to collapse
agentdr8,
Thanks for the reply.
Care to share details on the commands you ran? Or are you saying it's not worth it because it's so buggy?
thanks
To avoid a hard lockup, start with the wifi turned off. I tested it numerous times with it already on, and it resulted in a battery pull.
You'll need busybox 1.7x (maybe 1.8x will work too?). You'll also need a working iwconfig binary (I symlinked mine from the WifiTether app dir: /data/ext2data/data/android.tether/bin to /system/xbin)
With an adb shell, try something like this:
$ su
# /system/xbin/ifconfig eth0 up
# /system/xbin/iwconfig eth0 mode ad-hoc
# /system/xbin/iwconfig eth0 essid YourEssidHere
# /system/xbin/iwconfig eth0 key WEPkeyhere
Now with wifi turned off, these commands will all error since the interface is down/off (eth0 is the wifi, at least on my Cap). Turn your wifi on and rerun the same commands, followed by:
# netcfg eth0 dhcp
This may or may not error out, but ultimately, you should see a dhcp address for eth0 as handed out by your dhcp server/mywi device.
You may need to also manually add the ad-hoc network in the GUI with its key. I can't remember if I needed that or not, but with it I can see the connection status and when it's grabbing the IP. Even shows connected and signal strength once it does connect (assuming it doesn't lockup).
agent can you help me pls. Im a newbie still.
Do i run all those commands in windows when my phone is connected or do i run it through something like terminal emulator an app on the phone??
You can either use adb shell on your Windows machine (part of the Android SDK), or you can use a terminal on the device itself (ConnectBot is my preferred). Your phone needs to be rooted if it isn't already.
Okay, I'll try out the connectbot. Can you tell me how to do this part then if it's needed??
"You'll also need a working iwconfig binary (I symlinked mine from the WifiTether app dir: /data/ext2data/data/android.tether/bin to /system/xbin)"
how do you do this symlinked part?? I don't really understand it.
I tried ur commands without doing the symlinked part....everything just returned a "not found" message.
Maybe you could give me a dumbed down step by step way of doing this hahahaha??? Im rooted and i have busybox 1.7x, just missing the working iwconfig because im not really sure what it is.
If you're not too familiar with linux commands, it would be best to wait for someone to build a widget/GUI app around this, as poking around in a root shell on your phone is never a good idea if you're not aware of the potential consequences of blindly running commands.
It's possible that with the Froyo update adhoc connections may just work as intended, not that I've read anything that suggests that.
The portal had a write up on how to connect an android device to an adhoc network a couple days ago.
Sent from my AOSP on XDANDROID MSM using XDA App
boborone said:
The portal had a write up on how to connect an android device to an adhoc network a couple days ago.
Sent from my AOSP on XDANDROID MSM using XDA App
Click to expand...
Click to collapse
Okay, i'll go look for it though a link would help.
Maybe i'll just wait until something like Cyanogens ROM comes, i hear it usually comes with ad-hoc connectivity.
Try this: http://www.xda-developers.com/android/android-ad-hoc-wireless-network-support/
Sent from my HTC Dream using XDA App
only problem is it's compiled for froyo and i think geared towards the Desire according to the replies.
I feel like it might mess up my captivate
Well if you're computer is windows7 you can use a program called conectify.
It makes win7's adhoc networks work as real hotspots
Sent from my HTC Dream using XDA App
Wanted to enable ad-hoc so I could tether the captivate to my iPhone
Yes I woild also know on a workaround , would love to tether my unlimited data from my iphone to my captivate
pewpewbangbang said:
Wanted to enable ad-hoc so I could tether the captivate to my iPhone
Click to expand...
Click to collapse
Why would you do that? Do you prefer safari over android browser or something?
Sent from my Nexus One using XDA App
cowballz69 said:
Yes I woild also know on a workaround , would love to tether my unlimited data from my iphone to my captivate
Click to expand...
Click to collapse
Then You need to jailbreak your iphone and get a tethering app
boborone said:
Then You need to jailbreak your iphone and get a tethering app
Click to expand...
Click to collapse
Issue isn't on iPhone-end, nor wpa-supplicant end (as the wpa-supplicant binary included in the android wireless tether app has this ability).
The problem is the GUI end of things (i.e., settings.apk) ALSO filters the results.
So it goes beyond simpy modifying the wpa-applicant (yes; this is sufficient for the basic-functionality), but is very crude & diffcult to do on the go from the tiny terminal emulator, etc.
What I've personally been looking for, is an update that modifies the neceasary files, and enables this extewmely useful function.
Something similar to the update package posted for the froyo-build, but instead for the ECLAIR-2.1 build of the captivate.
If anyone knows of anything availible like I'm describing (a GUI-centered mod that will remove ALL the STUPID damn (pardon language lol) IBSS filtration form the settings.apk, wpa-supplicant, wireless configuration files, etc for the ECLAIR-2.1 build of the Captivate so that it JUST WORKS lol -- this way we can SEE and CONNECT via our native GUI .
I've gotten this to work through running command line / configuration file hacks, but it's very messy/annoying AND to make things MORE annoying, once you've put it into Ad-hoc mode and have it all setup very nicely, guess what? The settings.apk application (which is needed to load the device into kernel), will actually COMPLETELY UNDO all the tedious command line efforts you've just made, and takes the wifi chip out of Ad-hoc mode every x amount of minutes! ARGH!! LOL!
Anyway, I've gone through the source code and patch diff's myself and it really doesn't seem very involved. I actually was planning on compiling the necessary modded binary (making a nice update.zip for all the frustrated captivate owners like myself lol), but I simply haven't had the time to setup the build environment for it at the moment (have several other build environments I'm juggling as it is with work).
Anyway, I apologize for the rant lol -- I just wanted to clarify exactly what is needed and point out it really wouldn't be much work (and would be VERY much appreciated!!!!) if someone with the skill, time, and a build environment for the galaxy s (captivate, speifically lol , could post an eclair mod for us -- you would receive AN ENORMOUS amount of praise & thanks lol .
OR -- if someone who has a little time, could simply modify the android wireless-tether-app to have one extra feature, 'connect to ad-hoc network' lol . This would also be ideal, as it already fully supports the initialization & loading of the captivate wireless driver properly, and can fully manage the interface & connections while running in the background (independent of settings.apk). PLUS -- it even already has full ad-hoc support built into it's own pre-packaged wpa-supplicant. Basically, all the hard work has already been done with the wireless-tether-app, just need a few extra functions to handle scanning for networks and connecting to them (relatively simple, considering they've already done ALL the hard work..lol)..
Okay, my rant is officially done! Lol! I just hope this helps those who have the capability to help, give a clear picture of all that's required. It's late, so some of this stuff may have already been mentioned and I missed it! Shoot, maybe someone just finished doing exactly what I just went on & on about? Lol.
In any case, if anyone is willing to help out -- or already knows of a solution already out there I've missed -- PLEASE let me' know! This functionality would truly help a great deal in my day to day work with my captivate! Thanks in advance!!!
holy need a bump batman!
i would really like this too!
I found this post last night, but I couldn't get it to work: http://forum.xda-developers.com/showpost.php?p=16632147&postcount=7758

[Q]

Whew. Ok, well, I am new to rooting and such and also new to smartphones in general. First, I must explain what I am attempting to achieve by modding and rooting my droid x.
I am trying to use my droid as a modem for an xbox 360. I have already rooted my phone with z4root. I am using barnacle wifi tether in order to connect the 360 slim to a wireless WAN. I am able to connect online; however, I would like to get a better speed, so after spending all day going though threads online, I have found a possible solution. Due to the fact that I am new to this I am at a loss with all the jargon and apps. It appears that by setting up a new ROM I will be able to get into the system root files to modify the throttle lock on the phone. This is all in theory, of course, from what I have located. All the tutorials I have looked into do not give enough info to fully understand and use their methods. Currently on my phone, I have an installed PDAnet which i am using for wired internet on my PC. (I do not have internet at my residence currently.) It also seems I am having issues downloading some files online, maybe due to timeout or something, but I cannot be sure. As you can guess, this is getting pretty frustrating. I am also running ROM manager. I am at the point where I cannot go any further in what I am attempting to do unless I get assistance. Also, Youtube seems fairly useless in this particular issue and variations of this issue.
So in short, I ask that someone please assist me with this and be as detailed as you can to clear up any miscommunication. Please use and/or explain any jargon that you use.
Thank you for any posts that you make in response. I will be looking into this thread for posts.
Also. I am currently running The default android and did a Factory Data Reset.It is Android Version 2.2.1.
DROIDX
UPDATE
I also installed adb and SDK, wifi tether, droidx bootstrapper, no frills CPU controller, Terminal Emulator, and root explorer.
http://forum.xda-developers.com/showthread.php?t=863923 I followed this post and im caught in a snag. when i run "java -jar baksmali.jar -o classout/ classes.dex" in CMD im getting this error "unable to access jar file baksmali.jar"
Also can someone please post a link to a nandroid backup tut for a droidx

[Q] ssh: command not found

My tablet is rooted, I have Busybox, Better Terminal Emulator Pro, Terminal Emulator, Superuser, and every other hack-y type app you can think of, but if I try to run an ssh from one of the command line's, I get ' ssh: command not found'.
Should I have it, is there any way I could add it? I've got it on my Cyanogenmod build of my Desire, but I need it for vnc tunnelling sessions with the tablet, the screen is just to small on the phone!
Any and all help is greatly appreciated.
Sent from my GT-P6200 using xda app-developers app
Ok, so just after posting, I realised I want going in under BTEP's shell, but as soon as I did that, I had the ssh command- but it's not the right version. I'm trying to login to an Amazon ec2 server, with a .pem key, but if I try to do that with dropbear's version of ssh, I get a 'string too long' error. On my phone, I have an OpenSSH version of ssh, and that's why it works without a problem.
So my question now is, how do I get the OpenSSH version of the ssh binary into my tablet? (even though I knew it wouldn't work, I did try copying over the one from my Desire, just in case anyone suggests it)
Sent from my GT-P6200 using Tapatalk 2
I got where I wanted by using a patched version of connectbot, the irssi one which doesn't crash, accepts my pem keyhole, stays open in the background and forwards ports correctly. That, along with my discovery of the "Hacker's Keyboard", have made managing servers remotely ridiculously easy for me!
Sent from my GT-P6200 using Tapatalk 2
And just to come back on this again, Better Terminal Emulator Pro comes with OpenSSH binaries included. I don't know their specific versions, they only say "Ported to Android by www.magicandroidapps.com", but one way or another, it's great because it performs better than Connectbot (at times, with port forwarding), that was eating like 80% of my CPU, works by just pointing it to my .ssh folder, and is entirely more acceptable than any other option.
Only irritation is that the dropbear build of ssh is called just 'ssh', whereas Openssh's is 'openssh', had it been the other way around, dropbear's been 'dropssh' (the way I have it now), I'd never had a problem :/
Sure does feel lonely in this thread...
Sent from my GT-P6200 using Tapatalk 2

PPP connection with android

I am trying to set up a PPP connection from a Zte MF820b 4G LTE USB modem/router to a WiFi only Android tablet with a 4.2.2 os that has a custom ROM installed which technically shouldnt of been jailbroken. The tablet is running a Linux version 2.4.3 and KERNEL:3.0.36. The problem here is me. I am a complete newbie, but do know a little about command prompts and how this should work in theory. The tablet is fully rooted and has all the necessary applets installed via busy box(chat, nc, pppd, ect) and terminal emulator, or at least I think that's what's necessary. I installed PPPwidget 2 and 3 but as apk's and since they are not from the Play Store will not function. I have Google play store installed but its all but useless since I can not log into my account, for reasons I suspect as being that the system is too old and says something about the connection not being secure or private and as such...can not actually get the app with license verification from Google play store. I tried to lucky patch the apk and remove license verification but that did nothing as well. However the apk will read the modem and ask permission to allow pppwidget to be used but shortly fail after for the aforementioned lack of correct license. There must be a way to manually call the modem and connect via terminal emulator using adb ppp or nc? Without any understanding on how to actually write a script I'm hoping someone can help me get this functioning. Situation beyond current controll will not allow me to work with anything other than what's at hand, and I'm willing to pay for someones time if I can actually get this working. I also have a tablet with a different os (8.1 Oreo) should that be easier. With the 4.2.2 the device pops up as "storage" in my file manager. With the 8.1 it pops up as a device Id number when I type in lsusb in my terminal emulator. The 8.1 has Termux installed should that open up a different venue. The carrier I'm using is T-Mobile and the nameserver and ISP info is NS1-AUTH.SPRINTLINK.NET; IP 206.228.179.10. The device is functional as when the opportunity arose I was able to plug up to a computer and try it out. That's no longer viable. Again, I'm willing to pay for the help as I'm sure I'll need to correspond back and forth a few times and will probably need help writing the correct script if needed. Please email me @ [email protected]. Thank you.

Categories

Resources