Wednesday, February 29, 2012

MPLS L3VPN


Today I did a lab focused on MPLS L3 VPN. Today was the first day actually configuring this from scratch so it was fun and a great learning experience. I ran into several snags along the way but that's ok.(sample topology attached)

First Task is to get the core(PE1, PE2, PE3, PE4) up and running. First thing to decide on is which protocol do we want to use to distribute the MPLS labels. By default I believe LDP is enabled now on recent versions of IOS. So on each of the PE routers I enabled LDP, configured the LDP router id as the loopback of each router. Once I got that up, I figured ok, time to check my LDP neighbor relationships come up. They did not !!!!

Took a trip to the good Doc CD and saw that when using Loopbacks for LDP distibution, we need to advertise that loopback in the network but as a /32 host route only.
http://www.cisco.com/en/US/docs/ios-xml/ios/mp_ldp/configuration/12-4t/mp-ldp-overview.html#GUID-C5755CFC-818B-4A02-B35C-741A15E422EC

So now that I advertised the loopbacks, all of my LDP neighbor relationships were established. Next, configured BGP As # 1 for the core, and configured iBGP full mesh in the core. Activated each of the neighbors in the the vpnv4 address family, and enabled the send community extended, so that the attributes could be exchanged across the MPLS cloud. When I enabled the neighbors in vpnv4 AF, you no longer can see them when using the sh ip bgp sum command. At first I thought what happened to my neighbors? I ran show tcp brief and still saw the BGP sessions established(179) and my LDP session(646). Learned when you have the neighbors configured in vpnv4, you need to use the command sh bgp vpnv4 unicast all summary commmand, and they show up phew!

Next I configured the VRF CustomerA and CustomerB(along with the appropriate RD's and route-target imports/exports and assigned then as per the diagram. Then I enabled the PE-CE routing which was pretty straightforward. On the PE side, we need to redistribution from OPSF to BGP under the ipv4 address-family VRF config mode, so that the CE routes, can transit the MPLS, and the remote Customer site, can import the route-target and get the routes in its routing table transparently.

Next was enabling BGP as the PE-CE, and this screwed me up big time. I had it all configured perfect except one commmand. For some reason, The 10.10.x.x routes were not making it across the VPN. I found after 2 hours that I needed to enable as-override. Essentially, for example, when SW4 sends an update to PE4, its an eBGP update, When that traveres the mpls, and tries to export import to SW2, SW2 denies it as it sees its own AS100. So on R1 and R4, need to configure neigbor x.x.x.x as-override, and then routes were now exchanging. Painful lesson for sure, but now I will most likely remember it ;)

Monday, February 27, 2012

First graded lab 360 completed & Passed

Today I took my first graded lab in the Cisco 360. This was good, because now I was up against the clock as I would be in the real lab. I was able to pass with a 83/100, and still, redistribution is tripping me up. For some reason I can't get my mind wrapped around it.

Most of the items in the lab I was able to complete without issue. There were a few times when I messed myself up. For example, one section in for RIP, it asked to make sure that there were only unicast updates being sent between the neighbors. I did everything right: 1. I made sure that the interfaces were passived in RIP process . 2. Configured the neighbor statement on each side. I messed up on # 2 because I configured the wrong IP address on one of the neighbor statements. Thank God I actually ran the debug ip rip events to see one side was still sending multicast updates to 224.0.0.9, or else I would have lost points.

There was one BGP task that messed me up for a minute as well. It asked me to configure a summary address for 4 prefixes learned via my iBGP neighbor, which came from an external AS. The catch is, they wanted me to advertise this to a neighboring BGP AS, but it said to make it appear as if the routes came from the Originating AS, and to do this with only a summary route, no specific subnets. At first I was getting crazy thinking ok, how Can I send an eBGP update, and make that AS thing that the orignating AS sent it. As you can imagine, that wasn't going to well. I took a quick glance at the Doc CD config guide, and command reference and quickly saw the BGP AS-SET option. This is what I needed. The as-set command when used with an aggregate address will list the path in the eBGP update, showing the AS's that the update came through, and of course starting with the AS that sent it. So in the end aggreate-address x.x.x.x mask y.y.y.y as-set summary-only, did the trick.

I new this was the last task and according to my calculations of other tasks, I needed to get these 4 points to pass the lab. Sure enough, when I get the lab results , I got 83/1000. Without these 4 points I would not have passed.

I am happy to have passed, but not satisified. I need to be better, quicker, and not make some of the silly mistakes I am making.

Until next time :)

Sunday, February 5, 2012

360 link layer labs


Today I did a 360 LAB. All was ok until the last portion where they wanted to obtain reachability from R1 to SW4 on the 172.16.100.x subnet, which as you see in the Pic, it looks directly connected, but its not.

The requirement was to configure the subinterface of R1 F0/0.1 to encapsulate in VLAN 999, and have reachability to the SW4 VLAN 1144 SVI.

The actual L2 Flow is R1(F0/1.1) --------SW2 F0/1 --------L2 trunk-------SW4 (SVI VLAN 1144)

I configured R1 like so:

interface FastEthernet0/1
no ip address
duplex auto
speed auto
!
interface FastEthernet0/1.1
encapsulation dot1Q 999 native
ip address 172.16.100.1 255.255.255.0


SW2 confi f0/2

interface FastEthernet0/1
description R1 port 0/1
switchport access vlan 1144
switchport mode access

I did it this way because when encapsulating on a sub-interface on a router in Native VLAN, frames are sent untagged. My IP on the router is in the same VLAN as the SW4 SVI.

SW2 f0/2 is expecting only untagged frames(which we are sending due to the native command on R1), and will set the access VLAN to VLAn 1144,(same vlan/broadcast domain as SW4), and we see that everything works.

The first ping failure is due to SW2 f0/2 not being configured just yet.

R1#ping 172.16.100.44

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.100.44, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R1#ping 172.16.100.44

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.100.44, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

Good learning, I saw a similar VoD on 360 program that talked about this, and had some doubts, but this clears it up

Monday, January 30, 2012

360 pre-assessment learning :(

Well, there were quite a few areas left for improvement after the pre-assessment.
I failed misrably in route summarization for all routing protocols :)
So, I figured since that stuck out so badly, I should focus on it.

So today I turned on GNS3, and played with it. On Router 5 (R5) I created 4 networks using loopback addresses.

20.20.1.1 /24
20.20.2.1/24
20.20.4.1/24
20.20.8.1/24

Advertised these networks into OSPF
router ospf 1
network 20.20.1.0 0.0.0.255 area 1
network 20.20.2.0 0.0.0.255 area 1
network 20.20.4.0 0.0.0.255 area 1
network 20.20.8.0 0.0.0.255 area 1

Now the fun part. I thought ok, time to summarize, do the math:

as the 3rd octet is the focus, I just did the math there.

20.20.1.1 00000001
20.20.1.2 00000010
20.20.1.4 00000100
20.20.1.8 00001000

as we are already using 16 bits, (20.20.x.x) we count the remaining like bits to determine the mask to use for the summary. So we see we can use 4 bits, as the 5th bit in this octet changed. This leaves us with a 255.255.240.0 or / 20 Mask (16 bits used for the 20.20 part of the network + 4 bits in our 3rd octet)

So the summary would be 20.20.0.0 /20.

Next I applied the command using the summary-address command under the RIP process. THis did not work, But I was like how , I just did the same test in RIP.

A good friend reminded me summary-address is used for sending to an external AS.
SO i changed the to use the area range command.

Router ospf 1
area 1 range 20.20.0.0 255.255.240.0

Ah.. yes it worked. I apologize for not providing the working output, I closed GNS3 to quickly.

What I did find was interesting. When testing show ip route for my subnets, I found this summary also encompassed networks , that I am not currently using. I did show ip route 20.20.9.0 all the way up to 20.20.15.0 and my summary worked for these addresses even though I was not using them. Interesting huh?

Ok So i was thinking how is this happening? In reading more on this, you can summarize any address as long as ONE of the addresses is in the current routing table. Ah! ok. but why did the summary work for all of my addresses up to non-existing address fo 20.20.15.0, but not work for 20.20.16.x ?

Still Was not sure until I looked at the binary.


20.20.1.1 00000001
20.20.1.2 00000010
20.20.1.4 00000100
20.20.1.8 00001000

It only summarized up to 16 because of the subnet Mask boundary defined in by my mask

The 1st 4 bits, help define our mask, leaving our remaing 4 to be covered in the summary. If you add 1111(15) it equals to 15, hence not being able to encompass subnet 20.20.16.0 in the summary as its across the bit boundary by one bit as I defined in my mask.

Friday, January 27, 2012

Let's try this again

January 2012, really? I thoughd I'd be done with getting my CCIE by now, but as everyone knows, life never goes as we brilliantly planned :)

Alot has changed in the last two years. I am now working at Cisco in TAC and have had enjoyed the experience. I have the ability to work on so many different platforms and learn so much. My primary area of focus at work though is LAN switching so I like to think that helps me in my preperation for the CCIE R&S Lab exam.

I have recently been approved by my manager to attend an internal CCIE 360 program. It is not a 100 % instructlor led class, in fact I here its not very often is there ILT. So I will get as much as I put into the program. I intend to immerse myself in this opportunity that is coming free of costs , thanks Cisco.

To brush up on my rusty CCIE level lab skills, I decided last night to rent some time on Internetwork expert's rack rental. I opted to work on Volume 3 Core lab 3, which is essentially everything L2 including (STP, VTP, VLAN, Frame-relay,) L3(RIPv2, EIGRP,OSPF, BGP) and then the dreaded Route redistribution. Yes, that's right, I admit where I suck... lol.. and right now that is route redistribution. I did everything just fine up to this point, and on the last task It killed me. I realized this morning, I forgot one command that would have made last night a total succcess. Oh well, It was still a success considering the learning experience I can take from it.

Tomorrow night I have my first CCIE 360 pre-assessment lab. This will include everything I did on the INE lab, but also include IPv6, QoS, and Security. I hope after removing the dust off my brain last night that this goes smooth. This is not a pass/fail, its more to see what areas I am strong in, and some areas that can use some improvement which I'm sure are many.

Thursday, January 28, 2010

Hardware Problem NM-4 A/S

I've been having a nagging problem on my R3 NM-4 A/S Serial module. The frame relay connections s1/0 s1/1 would work sometimes, then not much. The s1/2, and S1/3 were working.

I was wondering if it was a problem with my frame switch, or with the NM 4 A/s for the last few days, and tonight i have my answer.

I ran the debug serial interface on R3, and on r1, R2 to see what was happening with each interface configured as HDLC links.

I noticed R1 and R2 both continuosly going up and down but my Side would show up when it was transitioning between states.

On R3, my side was never showing up, and I notice transmission hang errors on the S1/2, S1/3.

I did sh controllers on S1/0, S1/1 (frame relay interfaces) and S1/1 and S1/2, and I saw Transmit Hangs on all of them. Debug output below for one of the interfaces:


Rack3R3#sh controllers s1/1
CD2430 Slot 1, Port 1, Controller 0, Channel 1, Revision 19
Channel mode is synchronous serial
idb 0x6454ABC0, buffer size 1524, V.35 DTE cable

Global registers
rpilr 0x2, rir 0x3, risr 0x0, rfoc 0x0, rdr 0x2
tpilr 0x1, tir 0x3, tisr 0x60, tftc 0x0, tdr 0x4
mpilr 0x3, mir 0x3, misr 0xE0
bercnt 0xFF, stk 0x0
Per-channel registers for channel 1
Option registers
0x02 0x00 0x42 0xE7 0xE0 0x00 0x00
Command and status registers
cmr 0xC0, ccr 0x00, csr 0xCC, msvr-rts 0xF1, msvr-dtr 0xF1
Clock option registers
rcor 0x06, rbpr 0x01, tcor 0xC8, tbpr 0x01
Interrupt registers
ier 0x89, livr 0x04, licr 0x04
DMA buffer status 0x00
DMA receive registers
arbaddr 0x7BC74E4, arbcnt 1548, arbsts 0x1
brbaddr 0x7BC6E64, brbcnt 1548, brbsts 0x1
rcbaddr 0x7BC74E4
DMA transmit registers
atbaddr 0x7A00AD4, atbcnt 14, atbsts 0x0
btbaddr 0x7A00994, btbcnt 13, btbsts 0x0
tcbaddr 0x7A00C21
Special character registers
schr1 0x00, schr2 0x00, schr3 0x00, schr4 0x00
scrl 0x0, scrh 0x0, lnxt 0xF1
Driver context information
Context structure 0x6454CEE4, Register table 0x3C800400
Serial Interface Control 5:1 Register (0x3C800806) is 0x0
Adaptor Flags 0x0
Serial Modem Control Register (0x3C800808) is 0x18
Receive static buffer 0x6445D4FC
Receive particle buffers 0x6454D5C0, 0x6454D580
Transmit DMA buffers 0x0, 0x0, 0x0, 0x0
Transmit packet with particles 0x0, first word is 0x0
Interrupt rates (per second) transmit 0, receive 0, modem 0
True fast-switched packets 0
Semi fast-switched packets 0
Transmitter hang count 300
Residual indication count 0
Bus error count 0
Aborted short frames count 0
CRC short frames count 42
Tx DMA low threshold count 0
Error counters
CTS deassertion failures 0
Nested interrupt errors transmit 0, receive 0, modem 0



So..!!. I ordered another NM-4 A/S from Ebay. I hope to get it soon so I can resume labbing.

IP Routing Labs

Over the last few days I have done the first 6 IP routing labs. I have been taking my time with these labs as while not to complicated, its great to run debugs and watch the behavior of different protocols.

Tonight I did my first lab where I learned about the IP SLA Feature. The task has Router 4 connected to Router 1 Loopback via a FastEthernet interface VLAN146, and Frame-relay connection. R4 has 2 static routes, one out FastE VLAN 146 with the default admin static route distance of 1, and a route to R1 Loopback via Frame-relay with admin distance of 2. The goal is to ensure IP reachability to the R1 Loopback if the Fastethernet route to R1 goes down. I created IP SLA echo to send echo request every 5 seconds, and then a enhanced tracking object to track that SLA. I then configured the static ip route with the Tracing Object. Configuration below, followed by the testing. *****NOTE I enabled debug ip routing so we could see the route automatically being added or deleted depending on if R1's ethernet interface was up. Also note, not many pings missed, Im sure if I lowered the IP SLA timer to send pings ever Second instead of every 5 seconds I can limit the packet loss even more.


ip sla 1
icmp-echo 155.3.146.1
frequency 5
ip sla schedule 1 life forever start-time now
!
!track 1 ip sla 1 reachability

ip route 150.3.1.0 255.255.255.0 FastEthernet0/1 track 1



Below is the test!

Rack3R1(config-if)#shut
Rack3R1(config-if)#
CCIE-Console>4
[Resuming connection 4 to R4 ... ]
.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.....
%TRACKING-5-STATE: 1 ip sla 1 reachability Up->Down
RT: del 150.3.1.0/24 via 0.0.0.0, static metric [1/0]
RT: delete subnet route to 150.3.1.0/24
RT: NET-RED 150.3.1.0/24
RT: add 150.3.1.0/24 via 155.3.0.1, static metric [2/0]
RT: NET-RED 150.3.1.0/24.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!
CCIE-Console>1
[Resuming connection 1 to R1 ... ]

*Mar 2 03:01:56.027: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 2 03:01:57.027: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
Rack3R1(config-if)#
Rack3R1(config-if)#no shut
Rack3R1(config-if)#
CCIE-Console>4
[Resuming connection 4 to R4 ... ]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%TRACKING-5-STATE: 1 ip sla 1 reachability Down->Up!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RT: closer admin distance for 150.3.1.0, flushing 1 routes
RT: add 150.3.1.0/24 via 0.0.0.0, static metric [1/0]
RT: NET-RED 150.3.1.0/24!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.
Success rate is 99 percent (5651/5659), round-trip min/avg/max = 1/8/144 ms