OCCRA
Go to Post I told people that I was a summit for world leaders for our regional. We had two that are current world leaders and over 1000 that will be ones in 2029. - Foster [more]
Home
Go Back   Chief Delphi > Technical > Programming > Java
CD-Events   CD-Media   CD-Spy   FRC-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rating: Thread Rating: 5 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 01-11-2011, 01:02 AM
mika.perlin mika.perlin is offline
Registered User
FRC #0955
 
Join Date: Jan 2010
Location: Corvallis, OR
Posts: 17
mika.perlin is an unknown quantity at this point
NetBeans robot communication/subnet problems

So just a week ago, before the competition, I had a laptop communicating with last year's cRio and downloading code fine. Now I have a new laptop (the old one's gone) on which I also installed NetBeans, the FRC Java plug-ins, and the 2011 updates. I also re-imaged the cRio to version 25 (for Java).

Long story short I can't download code onto the robot. I checked my static IP (10.9.55.6), as well as that of the cRIO (10.9.55.2). I can ping the cRio, but I can't download code. When I try to it gives me this error:

Code:
target IP: 10.9.55.2
Network interfaces on host:
    Realtek PCIe FE Family Controller:  address: 10.9.55.6 netmask: 255.255.255.255
    DW1501 Wireless-N WLAN Half-Mini Card:  address: 167.128.54.128 netmask: 255.255.255.255
WARNING: Host is not on same subnet as robot. May not be able to complete all communication with robot.
Connecting FTP @10.9.55.2
C:\Users\Michael Perlin\sunspotfrcsdk\build.xml:95: The following error occurred while executing this line:
C:\Users\Michael Perlin\sunspotfrcsdk\ant\upgrade.xml:40: 
java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at java.net.Socket.<init>(Socket.java:375)
        at java.net.Socket.<init>(Socket.java:189)
        at org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:53)
        at org.apache.commons.net.SocketClient.connect(SocketClient.java:162)
        at org.apache.commons.net.SocketClient.connect(SocketClient.java:250)
        at com.sun.spot.sdk.tool.ftp.JakartaFtpWrapper.connectAndLogin(JakartaFtpWrapper.java:37)
        at com.sun.spot.sdk.tool.ftp.UpgradeTask.execute(UpgradeTask.java:201)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
        at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:281)
        at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
        at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)

It looks like everything except the first few lines is unimportant; I think basically it's saying I have the wrong subnet mask, but I've tried both 255.0.0.0 [the default] and 255.255.255.0 [what I think it should be]. Both of which have worked in the past, and it still says it's 255.255.255.255... which it's not... (Ignore the Wireless-N card I'm just using that to connect to the internet. I still get the same error if I disable it.) I'm confused and frustrated about this, as I tried everything I could think of for several hours with no results. I even tried re-installing NetBeans and the updates, etc., but still the same error.

Is NetBeans messing up? Am I doing something wrong? Is it the cRio? (With which I did have problems imaging, but I eventually got it, so it shouldn't be a problem... still, I'll try re-imaging it tomorrow.)

I'm sort of helpless here. If anyone knows anything please help?
Reply With Quote
  #2   Spotlight this post!  
Unread 01-11-2011, 01:12 AM
davidthefat davidthefat is offline
Alumni
AKA: David Yoon
FRC #0589 (Falkons)
Team Role: Alumni
 
Join Date: Jan 2011
Rookie Year: 2010
Location: California
Posts: 792
davidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud of
Re: NetBeans robot communication/subnet problems

Try reinstalling or updating the network card drivers. Its worth a shot.
__________________
Do not say what can or cannot be done, but, instead, say what must be done for the task at hand must be accomplished.
Reply With Quote
  #3   Spotlight this post!  
Unread 01-11-2011, 02:47 AM
mika.perlin mika.perlin is offline
Registered User
FRC #0955
 
Join Date: Jan 2010
Location: Corvallis, OR
Posts: 17
mika.perlin is an unknown quantity at this point
Re: NetBeans robot communication/subnet problems

Update: I get the warning about the subnet mask on the classmate as well, and I get it [i]before/I] NetBeans actually tries to connect to the cRio (and I suppose I could tomorrow also see if the same errors follow when I actually try to connect to the cRio with the classmate, though I don't doubt they will.) Also, I know my code isn't the problem, as I've tried doing this with default code as well with the same results.
This leads me to think I'm overlooking some NetBeans update perhaps. As far as I know, all you have to do is add a third party source for plugins in NetBeans under the name "FRC Java" and the url http://first.wpi.edu/FRC/java/netbea...te/updates.xml.
Orrr you can can download the 2011 NetBeans updates from the FIRST website which lead you to http://firstforge.wpi.edu/sf/frs/do/...e_for_2011_frc. These are the same updates though, as NetBeans will tell you.

...Anything else I'm missing? Some other plugins I have to add? I am using NetBeans v6.9.1 with JDK v6 + update 23.

And sorry for the lengthy post, I'm just really trying to without a doubt isolate the problem, as I won't be able to sleep easy until this is fixed... Talk about knowing when I've overdosed on FIRST
Reply With Quote
  #4   Spotlight this post!  
Unread 01-11-2011, 03:00 AM
lineskier's Avatar
lineskier lineskier is offline
Registered User
AKA: mike
FRC #0319 (Big Bad Bob)
Team Role: Mentor
 
Join Date: Feb 2005
Rookie Year: 2003
Location: Alton, New Shire
Posts: 669
lineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond reputelineskier has a reputation beyond repute
Re: NetBeans robot communication/subnet problems

did you guys reimage your crio and your netbooks with the 2011 updates from NI. you may be using the netbeans updates without the rest.

http://joule.ni.com/nidu/cds/view/p/id/2261

also note you must install the labview update first. then the driver station and utilities updates.
__________________
"Never let your schooling interfere with your education" -Mark Twain
Reply With Quote
  #5   Spotlight this post!  
Unread 01-11-2011, 07:34 AM
derekwhite's Avatar
derekwhite derekwhite is offline
Java Virtual Machine Hacker
no team (FIRST@Oracle)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2009
Location: Burlington, MA
Posts: 127
derekwhite is on a distinguished road
Re: NetBeans robot communication/subnet problems

There may be two issues here:

1) It's possible that the warning message has an error in it (it's new code), although I haven't seen that here. What OS are you using?

2) In any case, ftp isn't working.
The most common cause is a firewall on your development machine is blocking Java (which is doing the ftp).

Added to the FAQ at http://firstforge.wpi.edu/sf/wiki/do...pilib/wiki/FAQ

Last edited by derekwhite : 01-11-2011 at 07:45 AM.
Reply With Quote
  #6   Spotlight this post!  
Unread 01-11-2011, 07:38 AM
omalleyj omalleyj is offline
Registered User
AKA: Jim O'Malley
FRC #1279 (Cold Fusion)
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2008
Location: New Jersey
Posts: 127
omalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to beholdomalleyj is a splendid one to behold
Re: NetBeans robot communication/subnet problems

I saw the identical error when we first did the update. (We did all, Labview, then Utilities, then driver station, net beans last)
I reboote the cRIO and the laptop one more time and everything worked fine afterwards.
The second laptop I did did not show the error so I suspect it was the cRIO that really needed to reboot.

Good luck!
Reply With Quote
  #7   Spotlight this post!  
Unread 01-12-2011, 12:37 AM
mika.perlin mika.perlin is offline
Registered User
FRC #0955
 
Join Date: Jan 2010
Location: Corvallis, OR
Posts: 17
mika.perlin is an unknown quantity at this point
Re: NetBeans robot communication/subnet problems

Update #2: I re-imaged the cRio; I still get the subnet mask warning, but I can download code and communicate just fine. Thanks guys.
Reply With Quote
  #8   Spotlight this post!  
Unread 01-18-2011, 07:38 PM
Davis.Paul Davis.Paul is offline
Programming Mentor
FRC #0948 (Newport Robotics Group (NRG))
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2009
Location: Bellevue, WA
Posts: 1
Davis.Paul is an unknown quantity at this point
Re: NetBeans robot communication/subnet problems

Our whole programming team (5 different laptops) are all getting the 255.255.255.255 subnet mask warning even though it is definitely set to 255.0.0.0. I believe all laptops are updated with the latest Netbeans and FRC software, and the cRIO has the 2011 image. We can download code to the cRIO alright from all laptops, but only one laptop so far has been able to see debug output from System.out.println -- the others keep waiting for the cRIO to reboot even though the cRIO reboot has completed and our code is running. Is this warning just something bogus we should just ignore? Any ideas why most of our laptops can't see debug output?
Reply With Quote
  #9   Spotlight this post!  
Unread 01-19-2011, 07:22 AM
derekwhite's Avatar
derekwhite derekwhite is offline
Java Virtual Machine Hacker
no team (FIRST@Oracle)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2009
Location: Burlington, MA
Posts: 127
derekwhite is on a distinguished road
Re: NetBeans robot communication/subnet problems

There is something wrong with the warning code. What OS are you using?

Also, if you could post your IP configuration that would be helpful (ipconfig command on windows, ifconfig on mac/linux).


Thanks
Reply With Quote
  #10   Spotlight this post!  
Unread 01-28-2011, 08:45 AM
derekwhite's Avatar
derekwhite derekwhite is offline
Java Virtual Machine Hacker
no team (FIRST@Oracle)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2009
Location: Burlington, MA
Posts: 127
derekwhite is on a distinguished road
Lightbulb Re: NetBeans robot communication/subnet problems

The "WARNING" issue:

It turns out that there's a bug in Java 6 on Windows.

When a network interface supports both IPv6 and IPv4, the Java APIs return the IPv6 network prefix length (128) instead of the correct IPv4 subnet mask. And 128 maps to 255.255.255.255.

We'll update the warning code to punt on this case for now.
Reply With Quote
  #11   Spotlight this post!  
Unread 02-12-2011, 09:54 AM
blackwood blackwood is offline
Registered User
FRC #2359 (RoboLobos)
Team Role: Teacher
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Edmond, OK
Posts: 32
blackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to behold
Re: NetBeans robot communication/subnet problems

We also are having the subnet mismatch error. What I am not seeing in this thread is a solution. Any ideas?
Reply With Quote
  #12   Spotlight this post!  
Unread 02-12-2011, 10:51 AM
Ben_R_R's Avatar
Ben_R_R Ben_R_R is offline
Assistant Programing Mentor
FRC #2194 (Fondy Fire)
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: WI
Posts: 21
Ben_R_R is an unknown quantity at this point
Re: NetBeans robot communication/subnet problems

Can you open a command line terminal, run "ipconfig" and post the output?

That would help us narrow down the source of the problem.
__________________
2194 Alumni and Mentor
Reply With Quote
  #13   Spotlight this post!  
Unread 02-12-2011, 12:23 PM
derekwhite's Avatar
derekwhite derekwhite is offline
Java Virtual Machine Hacker
no team (FIRST@Oracle)
Team Role: Programmer
 
Join Date: May 2009
Rookie Year: 2009
Location: Burlington, MA
Posts: 127
derekwhite is on a distinguished road
Re: NetBeans robot communication/subnet problems

Blackwood,

Are you just getting the subnet mask warning, and NetBeans claims that your subnet is "255.255.255.255"? If so, that is a bogus warning and can be ignored (as mentioned in post #10).

BTW, that warning has been fixed in the latest release.

If you're getting a different error, please post the text.

Good luck!
Reply With Quote
  #14   Spotlight this post!  
Unread 02-12-2011, 01:28 PM
blackwood blackwood is offline
Registered User
FRC #2359 (RoboLobos)
Team Role: Teacher
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Edmond, OK
Posts: 32
blackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to beholdblackwood is a splendid one to behold
Re: NetBeans robot communication/subnet problems

Here is what we are getting. The last line says: Overload me
and it seems to hang at that time.

BTW... I'm just the team coach, I am totally clueless on this, I'm just trying to get some answers for the programmers.

Thanks in advance!
-----

init:
init:
Deleting directory C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\build
Deleting directory C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Deleting directory C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\j2meclasses
clean:
Created dir: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\build
Compiling 1 source file to C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\build
Note: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\src\edu\wpi\first\wpilibj\defaultCode\Defa ultRobot.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
compile:
Created dir: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\j2meclasses
preverify:
Created dir: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Building jar: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite\BuiltInDefaultCode_1.0.0.jar
jar-app:
CompilerOracle: exclude com/sun/squawk/Method.getParameterTypes
CompilerOracle: exclude com/sun/squawk/SymbolParser.getSignatureTypeAt
CompilerOracle: exclude com/sun/squawk/SymbolParser.stripMethods
[translating suite image [closed: false, parent: squawk] ...]
### Excluding compile: com.sun.squawk.Method::getParameterTypes
### Excluding compile: com.sun.squawk.SymbolParser::getSignatureTypeAt
[Including resource: META-INF/MANIFEST.MF]
Romizer processed 100 classes and generated 4 files.
Expanding: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite\BuiltInDefaultCode_1.0.0.jar into C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Moving 1 file to C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Moving 1 file to C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Moving 1 file to C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\suite
Deleting: C:\Users\Kaleb\Documents\NetBeansProjects\DefaultC odeBeta\image.suite.api
Host OS: Windows 7 6.1, 6.1
Host JVM: Java HotSpot(TM) 64-Bit Server VM 19.0-b09
Target IP: 10.23.59.2
Network interfaces on host:
Realtek PCIe GBE Family Controller: address: 10.23.59.6 netmask: 255.255.255.255
WARNING: Host is not on same subnet as robot. May not be able to complete all communication with robot.
Connecting FTP @10.23.59.2
upgrade:
Sending local file image.suite
flashapp:
deploy:
init:
[cRIO] [OTA Server] ********* REBOOTING cRIO *********
[cRIO]
Waiting for cRIO to reboot (1s)
Waiting for cRIO to reboot (2s)
Waiting for cRIO to reboot (3s)
Waiting for cRIO to reboot (4s)
Waiting for cRIO to reboot (5s)
Waiting for cRIO to reboot (6s)
Waiting for cRIO to reboot (7s)
[cRIO]
[cRIO] -> * Loading StartupDlls: debug
[cRIO] Entering debug.o StartupLibraryInit
[cRIO] Debugging is up, target server mounted at /tsfs
[cRIO]
[cRIO]
[cRIO] VxWorks
[cRIO]
[cRIO] Copyright 1984-2006 Wind River Systems, Inc.
[cRIO]
[cRIO] CPU: MPC5200 -- Wind River Lite5200 BSP.
[cRIO] Runtime Name: VxWorks
[cRIO] Runtime Version: 6.3
[cRIO] BSP version: 2.0/10
[cRIO] Created: Jul 29 2009, 13:41:47
[cRIO] ED&R Policy Mode: Deployed
[cRIO] WDB Comm Type: WDB_COMM_END
[cRIO] WDB: Ready.
[cRIO]
[cRIO] Leaving debug.o StartupLibraryInit
[cRIO] * Loading StartupDlls: NiRioRpc
[cRIO] * Loading StartupDlls: niorbs
[cRIO] * Loading StartupDlls: NiViSrvr
[cRIO] * Loading StartupDlls: visa32
[cRIO] * Loading StartupDlls: nivissvc
[cRIO] task 0xee4e68 (PAL00fb6370) deleted: errno=0 (0) status=0 (0)
[cRIO] NI-RIO Server 3.2 started successfully.
[cRIO] task 0xc60380 (NiRioRpc) deleted: errno=0 (0) status=0 (0)
[cRIO] * Loading StartupDlls: nivision
[cRIO] * Loading StartupDlls: niserial
[cRIO] * Loading StartupDlls: FRC_FPGA
[cRIO] * Loading StartupDlls: FRC_NetworkCommunication
[cRIO] task 0x1b0d760 (t2) deleted: errno=0 (0) status=0 (0)
[cRIO] FRC_NetworkCommunication was compiled from SVN revision 2258
[cRIO]
[cRIO] NI-VISA Server 4.5 started successfully.
[cRIO] task 0xe63438 (t1) deleted: errno=1835009 (0x1c0001) status=1 (0x1)
[cRIO] FPGA Hardware GUID: 0x2EAA5E59CAF1A8A966853A011B61CC91
[cRIO] FPGA Software GUID: 0x2EAA5E59CAF1A8A966853A011B61CC91
[cRIO] FPGA Hardware Version: 2011
[cRIO] FPGA Software Version: 2011
[cRIO] FPGA Hardware Revision: 1.5.3
[cRIO] FPGA Software Revision: 1.5.3
[cRIO] * Loading StartupDlls: FRC_JavaVM
[cRIO]
[cRIO]
[cRIO] [OTA Server] Version: 2011 FRC, Jan 6 2011, 09:47:42
[cRIO]
[cRIO]
[cRIO] Welcome to LabVIEW Real-Time 8.6.1f3
[cRIO]
[cRIO] [Squawk VM] Version: 2011 FRC, Feb 2 2011, 13:26:47
[cRIO] FPGA Hardware GUID: 0x2eaa5e59caf1a8a966853a011b61cc91
[cRIO] FPGA Software GUID: 0x2eaa5e59caf1a8a966853a011b61cc91
[cRIO] BuiltinDefaultCode Constructor Started
[cRIO]
[cRIO] BuiltinDefaultCode Constructor Completed
[cRIO]
[cRIO] RobotInit() completed.
[cRIO]
[cRIO] Default IterativeRobot.disabledContinuous() method... Overload me!
Reply With Quote
  #15   Spotlight this post!  
Unread 02-12-2011, 08:37 PM
Jose.Pena2737 Jose.Pena2737 is offline
Registered User
FRC #2737
 
Join Date: Feb 2011
Location: YES Prep SE
Posts: 2
Jose.Pena2737 is an unknown quantity at this point
Re: NetBeans robot communication/subnet problems

I'm having the same problem.

What happens after it gives me the subnet error, It says it's trying to connect to "FTP@ 10.0.0.2" even though our cRIO's IP address is 10.27.37.2.

If I change the cRio's IP to 10.0.0.2, it leaves me hanging on "Overload Me".

I've gone through various updates(I was having this problem two weeks ago, back then, the cRIO image was v25, now it's v27) and nothing has worked.

I would appreciate some help.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 11:01 PM.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi