diff --git a/Laptop/lidar/Lidar.py b/Laptop/lidar/Lidar.py
new file mode 100644
index 0000000000000000000000000000000000000000..42a434010cc385ed0ac8168dd130b6ef68a727c4
--- /dev/null
+++ b/Laptop/lidar/Lidar.py
@@ -0,0 +1,34 @@
+import socket
+import time
+#import matplotlib.pyplot as plt
+
+TCP_IP = '169.254.13.125'
+TCP_PORT = 2111
+BUFFER_SIZE = 10240
+
+#start
+#MESSAGE = "\x02sMN\x20LMCstartmeas\x03"
+
+MESSAGE = "\x02sRN\x20LMDscandata\x03"
+ 
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.connect((TCP_IP, TCP_PORT))
+
+for x in range(1,500):
+  s.send(MESSAGE)
+  #print "4"
+  data = s.recv(BUFFER_SIZE)
+  #print data.split(' 21D ')[1].split(' ')
+  try:	
+  	decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1])
+  except :
+  	print ('some error\n')
+  if len(decdata) == 546 :		
+  	print x, "recvd:", decdata[0:545:30]
+  else:
+	print x, 'len: ', len(decdata)
+  #plt.plot(data)
+  #plt.show()
+  time.sleep(0.05)
+s.close()
+
diff --git a/Laptop/lidar/aniPlot.py b/Laptop/lidar/aniPlot.py
new file mode 100644
index 0000000000000000000000000000000000000000..90da7c45817cd874305c179a7ae8a563f6605cad
--- /dev/null
+++ b/Laptop/lidar/aniPlot.py
@@ -0,0 +1,24 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.animation as animation
+
+def main():
+    numframes = 100
+    numpoints = 3
+    color_data = np.random.random((numframes, numpoints))
+    x, y, c = np.random.random((3, numpoints))
+
+    fig = plt.figure()
+    scat = plt.scatter(x, y, c=c, s=100)
+
+    ani = animation.FuncAnimation(fig, update_plot, frames=xrange(numframes),
+                                  fargs=(color_data, scat))
+    plt.show()
+
+def update_plot(i, data, scat):
+    print 'i:', i, ', data:', data[i]
+    scat.set_offsets((data[i]))
+    print data[i].shape
+    return scat,
+
+main()
\ No newline at end of file
diff --git a/Laptop/lidar/lidarPlot_simple.py b/Laptop/lidar/lidarPlot_simple.py
new file mode 100644
index 0000000000000000000000000000000000000000..28b757e3ed8262446d4dd6d0041bacd421bb8cd7
--- /dev/null
+++ b/Laptop/lidar/lidarPlot_simple.py
@@ -0,0 +1,84 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.animation as animation
+import math
+
+
+def update_plot(k, scat, degsPerP):
+    #scat.set_array(data[i])
+    #print 'K: ', k
+    myDistances = [20,21,2,3,4,5,6,7,8,9,2, 2,3]
+    xData = [0 for i in range(len(myDistances))]
+    yData = [0 for i in range(len(myDistances))]
+    # generate x and y coordinates from distances
+    for i in range(0,len(myDistances)):
+        xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP))
+        yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP))
+    print np.swapaxes(np.asarray((xData,yData)),0,1).shape
+    scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),0,1))
+
+    return scat
+
+
+def main():
+    myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23]
+
+    degsPerP = 270.0/(len(myDistances)-1)
+    print 'degs per P: ', degsPerP
+
+    scannerPosx = 0
+    scannerPosy = 0
+
+    xData = [0 for i in range(len(myDistances))]
+    yData = [0 for i in range(len(myDistances))]
+    # generate x and y coordinates from distances
+    for i in range(0,len(myDistances)):
+        xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP))
+        yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP))
+        #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i]
+
+    xData = [0]+xData # add cross in origin
+    yData = [0]+yData
+    fig = plt.figure()
+    scat = plt.scatter(xData,yData, s=20, marker='x')
+    plt.xlim(-25, 25)
+    plt.ylim(-25, 25)
+    #print len(yData)
+
+    ani = animation.FuncAnimation(fig, update_plot, frames=xrange(5), fargs=(scat, degsPerP))
+    plt.show()
+
+main()
+
+'''
+xDatap1 = [1,2,3,4,5]
+yDatap1 = [0.1,0.1,0.1,0.1,0.1]
+
+xDatap2 = [9,9,9,9,9]
+yDatap2 = [9,8,7,6,5]
+
+xDatap3 = [0.1,0.2,0.3,0.4,0.5]
+yDatap3 = [0.9,0.7,0.6,0.4,0.5]
+
+pos_data = np.random.random((5, 3, 2))
+
+for i in range(0, 5):
+    #pos_data[i] = [[xDatap1[i], xDatap2[i], xDatap3[i]], [yDatap1[i],yDatap2[i],yDatap3[i]]]
+    pos_data[i] = [[xDatap1[i],yDatap1[i]],[xDatap2[i],yDatap2[i]],[xDatap3[i],yDatap3[i]]]
+
+numframes = 5
+numpoints = 3
+#pos_data = np.random.random((numframes, numpoints, 2))
+#pos_data = (numframes,2,2)
+x, y, c = np.random.random((3, numpoints))
+
+fig = plt.figure()
+scat = plt.scatter([xDatap1[0],xDatap2[0], xDatap3[0]],
+                    [yDatap1[0],yDatap2[0], yDatap3[0]], c=c, s=100, marker='x')
+plt.xlim(0, 15)
+plt.ylim(0, 10)
+
+ani = animation.FuncAnimation(fig, update_plot, frames=xrange(5),
+                              fargs=(pos_data, scat))
+plt.show()
+'''
\ No newline at end of file
diff --git a/Laptop/lidar/plotLidar.py b/Laptop/lidar/plotLidar.py
new file mode 100644
index 0000000000000000000000000000000000000000..38620e66db2e62b6f8fd8e959a7c817f8d8a31c4
--- /dev/null
+++ b/Laptop/lidar/plotLidar.py
@@ -0,0 +1,101 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.animation as animation
+import math
+import socket
+import time
+
+TCP_IP = '10.180.65.30' #'169.254.13.125'
+TCP_PORT = 2111
+BUFFER_SIZE = 10240
+MESSAGE = "\x02sRN LMDscandata\x03"
+
+xData = [0 for i in range(0,541)]
+yData = [0 for i in range(0,541)]
+degsPerP = 270.0/(541-1)
+
+def update_plot(k, scat, s):
+
+    s.send(MESSAGE)
+    data = s.recv(BUFFER_SIZE)
+    try:  
+        decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1])[0:-5]
+        if len(decdata) != 541 :      
+            print 'len: ', len(decdata)
+            degsPerP = 270.0/(len(myDistances)-1)
+            # generate x and y coordinates from distances
+            for i in range(0,len(myDistances)):
+                xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP))
+                yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP))
+            #print np.swapaxes(np.asarray((xData,yData)),0,1).shape
+            scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0))
+
+            return scat
+
+        else:
+            #print 'OK!'
+            myDistances = decdata
+            degsPerP = 0.5 #
+
+            # generate x and y coordinates from distances
+            for i in range(0,len(myDistances)):
+                xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP))
+                yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP))
+            #print np.swapaxes(np.asarray((xData,yData)),0,1).shape
+            scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0))
+
+            return scat
+    except :
+        print ('some error\n')
+        return scat
+
+
+
+
+def main():
+
+
+    plot_type = "blit"
+    
+    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    s.connect((TCP_IP, TCP_PORT))
+
+    myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23]
+
+    #degsPerP = 270.0/(len(myDistances)-1)
+    print 'degs per P: ', degsPerP
+
+    scannerPosx = 0
+    scannerPosy = 0
+
+    xData = [0 for i in range(len(myDistances))]
+    yData = [0 for i in range(len(myDistances))]
+    # generate x and y coordinates from distances
+    for i in range(0,len(myDistances)):
+        xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP))
+        yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP))
+        #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i]
+
+    xData = [0]+xData # add cross in origin
+    yData = [0]+yData
+    fig = plt.figure()
+    scat = plt.scatter(xData,yData, s=0.5, marker='x')
+    plt.xlim(-20000, 20000)
+    plt.ylim(-10000, 20000)
+    fig.gca().set_aspect('equal', adjustable='box')
+    #print len(yData)
+
+    ani = animation.FuncAnimation(fig, update_plot, interval=20, frames=xrange(2), fargs=(scat, s))
+    plt.show()
+    s.close()
+
+main()
+
+
+
+#import matplotlib.pyplot as plt
+
+
+
+#start
+#MES
diff --git a/Laptop/lidar/plotterFRRelayer.py b/Laptop/lidar/plotterFRRelayer.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebaef1d44a63ad24f8e069b825b5375d7de54bde
--- /dev/null
+++ b/Laptop/lidar/plotterFRRelayer.py
@@ -0,0 +1,134 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.animation as animation
+import math
+import socket
+import time
+
+TCP_IP = '10.9.0.3' #'169.254.13.125'
+TCP_PORT = 2110
+BUFFER_SIZE = 10240
+
+xData = [0 for i in range(0,541+5)]
+yData = [0 for i in range(0,541+5)]
+degsPerP = 270.0/(541-1)
+
+def update_plot(k, scat, s):
+
+
+    s.send("go");
+    #time.sleep(0.1)
+    data = s.recv(BUFFER_SIZE)
+    try:  
+        decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1])[0:-5]
+        if len(decdata) != 541 :      
+            print 'len: ', len(decdata)
+            degsPerP = 270.0/(len(myDistances)-1)
+            # generate x and y coordinates from distances
+            for i in range(0,len(myDistances)):
+                xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP))
+                yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP))
+            #print np.swapaxes(np.asarray((xData,yData)),0,1).shape
+            
+            #xData = [0]+xData # add cross in origin
+            #yData = [0]+yData
+
+            scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0))
+
+            return scat
+
+        else:
+            print 'OK! 1'
+            myDistances = decdata
+            print 'OK! 2'
+            print len(myDistances)
+            degsPerP = 0.5 #
+
+            # generate x and y coordinates from distances
+            for i in range(0,len(myDistances)):
+                #print i
+                xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP))
+                yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP))
+
+            xData[len(myDistances)] = 0
+            yData[len(myDistances)] = 0
+            yData[len(myDistances)+1] = 200
+            xData[len(myDistances)+1] = 300
+
+            yData[len(myDistances)+2] = 200
+            xData[len(myDistances)+2] = -300
+            
+            yData[len(myDistances)+3] = -650
+            xData[len(myDistances)+3] = 300
+            
+            yData[len(myDistances)+4] = -650
+            xData[len(myDistances)+4] = -300
+            #print np.swapaxes(np.asarray((xData,yData)),0,1).shape
+            print 'OK! 3'
+            #print xData[0]
+            #print 'OK! 4'
+            #print xData
+            #print 'OK! 5'
+            #xData = [0]+xData # add cross in origin
+            #yData = [0]+yData
+
+            #print xData
+
+            scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0))
+
+            return scat
+    except :
+        print ('some error\n')
+        return scat
+
+
+
+
+def main():
+
+
+    plot_type = "blit"
+    
+    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    s.connect((TCP_IP, TCP_PORT))
+
+    myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23]
+
+    #degsPerP = 270.0/(len(myDistances)-1)
+    print 'degs per P: ', degsPerP
+
+    scannerPosx = 0
+    scannerPosy = 0
+
+    xData = [0 for i in range(len(myDistances))]
+    yData = [0 for i in range(len(myDistances))]
+    # generate x and y coordinates from distances
+    for i in range(0,len(myDistances)):
+        xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP))
+        yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP))
+        #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i]
+
+    xData = [0]+xData # add cross in origin
+    yData = [0]+yData
+    fig = plt.figure()
+    scat = plt.scatter(xData,yData, s=0.5, marker='x')
+    plt.xlim(-5000, 5000)
+    plt.ylim(-3000, 7000)
+    fig.gca().set_aspect('equal', adjustable='box')
+    #print len(yData)
+
+    print "Starting animation"
+    ani = animation.FuncAnimation(fig, update_plot, interval=500, frames=xrange(2), fargs=(scat, s))
+    plt.show()
+    s.close()
+
+main()
+
+
+
+#import matplotlib.pyplot as plt
+
+
+
+#start
+#MES
diff --git a/Laptop/lidar/relayer.py b/Laptop/lidar/relayer.py
new file mode 100644
index 0000000000000000000000000000000000000000..28c553ec150e8c53b4f7b66386c3825718834aca
--- /dev/null
+++ b/Laptop/lidar/relayer.py
@@ -0,0 +1,54 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.animation as animation
+import math
+import socket
+import time
+
+LIDAR_IP = '10.180.65.30' #'169.254.13.125'
+PLOTTER_IP = '10.9.0.2' #'169.254.13.125'
+LIDAR_PORT = 2111
+PLOTTER_PORT = 2110
+BUFFER_SIZE = 10240
+MESSAGE = "\x02sRN LMDscandata\x03"
+
+
+
+
+def main():
+
+
+    plot_type = "blit"
+
+    sp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    sp.bind(('', PLOTTER_PORT))
+    print 'listening for sender...'
+    sp.listen(1)
+    conn, addr = sp.accept()
+    print 'Connected by', addr
+    #conn.send("Hello")
+    
+    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    s.connect((LIDAR_IP, LIDAR_PORT))
+
+    while True:
+    	# check if update needed
+    	state = conn.recv(2)
+    	print(state)
+    	if state == "go":
+    		print("state was go")
+    		# request lidar data
+    		s.sendall(MESSAGE)
+    		data = s.recv(BUFFER_SIZE)
+    		print data
+    		#print data
+
+    		#time.sleep(0.1)
+
+    		# send lidar data
+    		conn.sendall(data)
+    
+    s.close()
+    conn.close()
+
+main()
diff --git a/Laptop/permoController.sh b/Laptop/permoController.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8a8c7c611e33ae1f8c36dbdea8054014a1a15890
--- /dev/null
+++ b/Laptop/permoController.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+
+echo "starting controller"
+( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) &
+P0=$!
+
+echo "starting camera receivers"
+
+( ./Downloads/panasonic-ip-cam/scream_receiver/bin/scream_receiver 10.9.0.3 31110 ) &
+P1=$!
+
+
+( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P2=$!
+
+( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P3=$!
+
+( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P4=$!
+
+( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P5=$!
+
+
+echo "Receiver and camera pipes up!"
+wait $P0 $P1 $P2 $P3 $P4 $P5
+
diff --git a/Laptop/permoController_new.sh b/Laptop/permoController_new.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f0cc90a2d7340d67a55f6fa838e49df1865e0f84
--- /dev/null
+++ b/Laptop/permoController_new.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+
+echo "starting controller"
+( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) &
+P0=$!
+
+echo "starting camera receivers"
+
+( ./scream/scream_receiver/bin/scream_receiver 10.9.0.3 31110 |& tee reciever.log ) &
+P1=$!
+
+
+( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P2=$!
+
+( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P3=$!
+
+( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P4=$!
+
+( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P5=$!
+
+
+echo "Receiver and camera pipes up!"
+wait $P0 $P1 $P2 $P3 $P4 $P5
+
diff --git a/Laptop/permoController_rust.sh b/Laptop/permoController_rust.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ed98f0fb4de04fcd0bfc11266d8691fbb0ebb551
--- /dev/null
+++ b/Laptop/permoController_rust.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+
+#echo "starting controller"
+#( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) &
+#P0=$!
+
+echo "starting camera receivers"
+
+( ./scream/scream_receiver/bin/scream_receiver 10.9.0.3 31110 |& tee reciever.log ) &
+P1=$!
+
+
+( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P2=$!
+
+( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P3=$!
+
+( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P4=$!
+
+( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) &
+P5=$!
+
+
+echo "Receiver and camera pipes up!"
+wait $P1 $P2 $P3 $P4 $P5
+
diff --git a/Laptop/scream/rtsp/CMakeCache.txt b/Laptop/scream/rtsp/CMakeCache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f9d0c37c7542417a2574495cd8358120c6954f44
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeCache.txt
@@ -0,0 +1,304 @@
+# This is the CMakeCache file.
+# For build in directory: /home/user/scream_panasonic/rtsp
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=scream
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+scream_BINARY_DIR:STATIC=/home/user/scream_panasonic/rtsp
+
+//Value Computed by CMake
+scream_SOURCE_DIR:STATIC=/home/user/scream_panasonic/rtsp
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/user/scream_panasonic/rtsp
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=7
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/user/scream_panasonic/rtsp
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake
@@ -0,0 +1,68 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "6.3.0")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
@@ -0,0 +1,69 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "6.3.0")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin
new file mode 100644
index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402
Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55
Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..50dad55f9105cc257142dae3142ee2448a2691d7
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.10.0-37-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-37-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.10.0-37-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.10.0-37-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,561 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out
new file mode 100644
index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81
Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out differ
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,533 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if __cplusplus >= 201402L
+  "14"
+#elif __cplusplus >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out
new file mode 100644
index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766
Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ
diff --git a/Laptop/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..de6570cc8d0f2eedaed81850d563444568a9c0fe
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/user/scream_panasonic/rtsp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/rtsp")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/rtsp/CMakeFiles/CMakeOutput.log b/Laptop/scream/rtsp/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000000000000000000000000000000000000..b7182e5935898927c9bfb7bb5e7fbbe4a069f216
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,560 @@
+The system is: Linux - 4.10.0-37-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/user/scream_panasonic/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/user/scream_panasonic/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_1ab7c/fast"
+/usr/bin/make -f CMakeFiles/cmTC_1ab7c.dir/build.make CMakeFiles/cmTC_1ab7c.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o   -c /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_1ab7c
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1ab7c.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o  -o cmTC_1ab7c -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_d806e/fast"
+/usr/bin/make -f CMakeFiles/cmTC_d806e.dir/build.make CMakeFiles/cmTC_d806e.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_d806e
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d806e.dir/link.txt --verbose=1
+/usr/bin/cc      -v CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o  -o cmTC_d806e -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d806e' '-rdynamic' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccBoP7Hj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d806e /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d806e' '-rdynamic' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_d806e/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_d806e.dir/build.make CMakeFiles/cmTC_d806e.dir/build]
+  ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc     -o CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_d806e]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d806e.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc      -v CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o  -o cmTC_d806e -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d806e' '-rdynamic' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccBoP7Hj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d806e /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccBoP7Hj.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_d806e] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_b4a4a/fast"
+/usr/bin/make -f CMakeFiles/cmTC_b4a4a.dir/build.make CMakeFiles/cmTC_b4a4a.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o
+/usr/bin/cc    -std=c11 -o CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o   -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c
+Linking C executable cmTC_b4a4a
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b4a4a.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o  -o cmTC_b4a4a -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:1c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_25180/fast"
+/usr/bin/make -f CMakeFiles/cmTC_25180.dir/build.make CMakeFiles/cmTC_25180.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_25180.dir/feature_tests.c.o
+/usr/bin/cc    -std=c99 -o CMakeFiles/cmTC_25180.dir/feature_tests.c.o   -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c
+Linking C executable cmTC_25180
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_25180.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_25180.dir/feature_tests.c.o  -o cmTC_25180 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_3c285/fast"
+/usr/bin/make -f CMakeFiles/cmTC_3c285.dir/build.make CMakeFiles/cmTC_3c285.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_3c285.dir/feature_tests.c.o
+/usr/bin/cc    -std=c90 -o CMakeFiles/cmTC_3c285.dir/feature_tests.c.o   -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c
+Linking C executable cmTC_3c285
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3c285.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_3c285.dir/feature_tests.c.o  -o cmTC_3c285 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:0c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:0c_variadic_macros
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9d104/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9d104.dir/build.make CMakeFiles/cmTC_9d104.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o
+/usr/bin/c++      -o CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_9d104
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9d104.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o  -o cmTC_9d104 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_66a10/fast"
+/usr/bin/make -f CMakeFiles/cmTC_66a10.dir/build.make CMakeFiles/cmTC_66a10.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++      -o CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_66a10
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_66a10.dir/link.txt --verbose=1
+/usr/bin/c++       -v CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_66a10 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_66a10' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHa6Wku.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_66a10 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_66a10' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_66a10/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_66a10.dir/build.make CMakeFiles/cmTC_66a10.dir/build]
+  ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++      -o CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_66a10]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_66a10.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++       -v CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_66a10 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_66a10' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHa6Wku.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_66a10 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccHa6Wku.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_66a10] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting CXX [-std=c++14] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_81a54/fast"
+/usr/bin/make -f CMakeFiles/cmTC_81a54.dir/build.make CMakeFiles/cmTC_81a54.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++14 -o CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_81a54
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_81a54.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o  -o cmTC_81a54 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++11] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_954d4/fast"
+/usr/bin/make -f CMakeFiles/cmTC_954d4.dir/build.make CMakeFiles/cmTC_954d4.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++11 -o CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_954d4
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_954d4.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o  -o cmTC_954d4 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++98] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_87080/fast"
+/usr/bin/make -f CMakeFiles/cmTC_87080.dir/build.make CMakeFiles/cmTC_87080.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++98 -o CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_87080
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87080.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o  -o cmTC_87080 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:0cxx_alias_templates
+    Feature record: CXX_FEATURE:0cxx_alignas
+    Feature record: CXX_FEATURE:0cxx_alignof
+    Feature record: CXX_FEATURE:0cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:0cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:0cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:0cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:0cxx_default_function_template_args
+    Feature record: CXX_FEATURE:0cxx_defaulted_functions
+    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:0cxx_delegating_constructors
+    Feature record: CXX_FEATURE:0cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:0cxx_explicit_conversions
+    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:0cxx_extern_templates
+    Feature record: CXX_FEATURE:0cxx_final
+    Feature record: CXX_FEATURE:0cxx_func_identifier
+    Feature record: CXX_FEATURE:0cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:0cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:0cxx_inline_namespaces
+    Feature record: CXX_FEATURE:0cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:0cxx_local_type_template_args
+    Feature record: CXX_FEATURE:0cxx_long_long_type
+    Feature record: CXX_FEATURE:0cxx_noexcept
+    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:0cxx_nullptr
+    Feature record: CXX_FEATURE:0cxx_override
+    Feature record: CXX_FEATURE:0cxx_range_for
+    Feature record: CXX_FEATURE:0cxx_raw_string_literals
+    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:0cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:0cxx_rvalue_references
+    Feature record: CXX_FEATURE:0cxx_sizeof_member
+    Feature record: CXX_FEATURE:0cxx_static_assert
+    Feature record: CXX_FEATURE:0cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:0cxx_thread_local
+    Feature record: CXX_FEATURE:0cxx_trailing_return_types
+    Feature record: CXX_FEATURE:0cxx_unicode_literals
+    Feature record: CXX_FEATURE:0cxx_uniform_initialization
+    Feature record: CXX_FEATURE:0cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:0cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:0cxx_variadic_macros
+    Feature record: CXX_FEATURE:0cxx_variadic_templates
diff --git a/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake b/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..d0e7b4c742f7a0f58f0b2eee9d8fe944c9a0e28b
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake
@@ -0,0 +1,117 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeSystem.cmake"
+  "CMakeFiles/feature_tests.c"
+  "CMakeFiles/feature_tests.cxx"
+  "CMakeLists.txt"
+  "code/CMakeLists.txt"
+  "/usr/share/cmake-3.7/Modules/CMakeCCompiler.cmake.in"
+  "/usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c"
+  "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCXXCompiler.cmake.in"
+  "/usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp"
+  "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCompilerIdDetection.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCXXCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCompileFeatures.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerABI.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerId.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeDetermineSystem.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeFindBinUtils.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeParseArguments.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeParseImplicitLinkInfo.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystem.cmake.in"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeTestCXXCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeTestCompilerCommon.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/ADSP-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Borland-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Cray-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GHS-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-C-FeatureTests.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/HP-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/IAR-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Intel-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/MSVC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/PGI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/PathScale-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/SCO-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/TI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/Watcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/XL-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.7/Modules/Internal/FeatureTesting.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-Determine-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/3.7.2/CMakeSystem.cmake"
+  "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  "code/CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "code/CMakeFiles/rtsp.dir/DependInfo.cmake"
+  )
diff --git a/Laptop/scream/rtsp/CMakeFiles/Makefile2 b/Laptop/scream/rtsp/CMakeFiles/Makefile2
new file mode 100644
index 0000000000000000000000000000000000000000..628a582eb7ebf69e7674fa485d07ada8cd40f3a1
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/Makefile2
@@ -0,0 +1,126 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/rtsp
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/rtsp
+
+#=============================================================================
+# Directory level rules for directory code
+
+# Convenience name for "all" pass in the directory.
+code/all: code/CMakeFiles/rtsp.dir/all
+
+.PHONY : code/all
+
+# Convenience name for "clean" pass in the directory.
+code/clean: code/CMakeFiles/rtsp.dir/clean
+
+.PHONY : code/clean
+
+# Convenience name for "preinstall" pass in the directory.
+code/preinstall:
+
+.PHONY : code/preinstall
+
+#=============================================================================
+# Target rules for target code/CMakeFiles/rtsp.dir
+
+# All Build rule for target.
+code/CMakeFiles/rtsp.dir/all:
+	$(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/depend
+	$(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/user/scream_panasonic/rtsp/CMakeFiles --progress-num=1,2 "Built target rtsp"
+.PHONY : code/CMakeFiles/rtsp.dir/all
+
+# Include target in all.
+all: code/CMakeFiles/rtsp.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+code/CMakeFiles/rtsp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles 2
+	$(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/rtsp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles 0
+.PHONY : code/CMakeFiles/rtsp.dir/rule
+
+# Convenience name for target.
+rtsp: code/CMakeFiles/rtsp.dir/rule
+
+.PHONY : rtsp
+
+# clean rule for target.
+code/CMakeFiles/rtsp.dir/clean:
+	$(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/clean
+.PHONY : code/CMakeFiles/rtsp.dir/clean
+
+# clean rule for target.
+clean: code/CMakeFiles/rtsp.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt b/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a8609f86f442eb7fcfe11a330978abb2df35899a
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,5 @@
+/home/user/scream_panasonic/rtsp/CMakeFiles/rebuild_cache.dir
+/home/user/scream_panasonic/rtsp/CMakeFiles/edit_cache.dir
+/home/user/scream_panasonic/rtsp/code/CMakeFiles/edit_cache.dir
+/home/user/scream_panasonic/rtsp/code/CMakeFiles/rebuild_cache.dir
+/home/user/scream_panasonic/rtsp/code/CMakeFiles/rtsp.dir
diff --git a/Laptop/scream/rtsp/CMakeFiles/cmake.check_cache b/Laptop/scream/rtsp/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin b/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin
new file mode 100644
index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72
Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin differ
diff --git a/Laptop/scream/rtsp/CMakeFiles/feature_tests.c b/Laptop/scream/rtsp/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+  const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/rtsp/CMakeFiles/feature_tests.cxx b/Laptop/scream/rtsp/CMakeFiles/feature_tests.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/feature_tests.cxx
@@ -0,0 +1,405 @@
+
+  const char features[] = {"\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_aggregate_default_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alias_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignof\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attributes\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attribute_deprecated\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_auto_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_binary_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_contextual_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_decltype\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_auto\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_incomplete_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_default_function_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_move_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_delegating_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_deleted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_digit_separators\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_enum_forward_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_explicit_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_extended_friend_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_extern_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_final\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_func_identifier\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_generalized_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_generic_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_inheriting_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_inline_namespaces\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_lambda_init_captures\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_local_type_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_long_long_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_noexcept\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_nonstatic_member_init\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_nullptr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_override\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_range_for\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_raw_string_literals\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_reference_qualified_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_relaxed_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_return_type_deduction\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_right_angle_brackets\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_rvalue_references\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_sizeof_member\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_static_assert\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_strong_enums\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
+"1"
+#else
+"0"
+#endif
+"cxx_template_template_parameters\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_thread_local\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_trailing_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unicode_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_uniform_initialization\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unrestricted_unions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_user_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_variable_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_macros\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_templates\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/rtsp/CMakeFiles/progress.marks b/Laptop/scream/rtsp/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+2
diff --git a/Laptop/scream/rtsp/CMakeLists.txt b/Laptop/scream/rtsp/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56e5847496314216df639ddbde33c65d2a86df5a
--- /dev/null
+++ b/Laptop/scream/rtsp/CMakeLists.txt
@@ -0,0 +1,83 @@
+cmake_minimum_required(VERSION 2.6)
+
+PROJECT( scream )
+
+message("Source Dir:" ${scream_SOURCE_DIR})
+
+SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin)
+SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib)
+SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin)
+
+SET(scream_BIN ${scream_SOURCE_DIR}/bin)
+
+message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR})
+
+IF(UNIX)
+add_definitions(-std=c++0x)
+ENDIF(UNIX)
+
+IF(WIN32)
+IF(MSVC12)
+message("Detected MSVC12 compiler")
+set(MSVC_VER VC12)
+ELSEIF(MSVC11)
+message("Detected MSVC11 compiler")
+set(MSVC_VER VC11)
+ELSEIF(MSVC10)
+message("Detected MSVC10 compiler")
+set(MSVC_VER VC10)
+ELSEIF(MSVC14)
+message("Detected MSVC14 compiler")
+set(MSVC_VER VC14)
+ELSE(MSVC12)
+message("WARNING: Unknown/unsupported MSVC version")
+ENDIF(MSVC12)
+ENDIF(WIN32)
+
+if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 64bit
+  message("Detected 64-bit build - compiling with -fPIC")
+  SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread")
+else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 32 bit
+message("Detected 32-bit build")
+SET(CMAKE_CXX_FLAGS "-fpermissive -pthread")
+endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+
+#SET(LDFLAGS "-lrt -pthread -lpthread -lncurses")
+
+SET(screamIncludes
+${scream_SOURCE_DIR}
+${scream_SOURCE_DIR}/code
+)
+
+message("screamIncludes directories:" ${screamIncludes})
+
+# lib directories
+IF(WIN32)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+)
+ELSEIF(UNIX)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+/usr/local/lib
+/usr/lib
+)
+ENDIF(WIN32)
+
+SET(LibDir
+${scream_SOURCE_DIR}/../lib
+)
+
+
+set(LIBS ${LIBS} -lncurses)
+
+message("LibDir directories:" ${LibDir})
+
+# Include directories
+INCLUDE_DIRECTORIES(
+${scream_SOURCE_DIR}/../include
+)
+
+ADD_SUBDIRECTORY( code)
diff --git a/Laptop/scream/rtsp/Makefile b/Laptop/scream/rtsp/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..17ff6a7c5ef3f8d4928cb3099807f83a352cf4fa
--- /dev/null
+++ b/Laptop/scream/rtsp/Makefile
@@ -0,0 +1,148 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/rtsp
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/rtsp
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles /home/user/scream_panasonic/rtsp/CMakeFiles/progress.marks
+	$(MAKE) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named rtsp
+
+# Build rule for target.
+rtsp: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 rtsp
+.PHONY : rtsp
+
+# fast build rule for target.
+rtsp/fast:
+	$(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build
+.PHONY : rtsp/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... rtsp"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/rtsp/bin/rtsp b/Laptop/scream/rtsp/bin/rtsp
new file mode 100755
index 0000000000000000000000000000000000000000..56a859847434e535637be41113d0cb38c2d5d4e5
Binary files /dev/null and b/Laptop/scream/rtsp/bin/rtsp differ
diff --git a/Laptop/scream/rtsp/cmake_install.cmake b/Laptop/scream/rtsp/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..4353a58aff9bd5637929b41fac6d89619b01adcd
--- /dev/null
+++ b/Laptop/scream/rtsp/cmake_install.cmake
@@ -0,0 +1,50 @@
+# Install script for directory: /home/user/scream_panasonic/rtsp
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/user/scream_panasonic/rtsp/code/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/user/scream_panasonic/rtsp/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..de6570cc8d0f2eedaed81850d563444568a9c0fe
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/user/scream_panasonic/rtsp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/rtsp")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/progress.marks b/Laptop/scream/rtsp/code/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+2
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache
new file mode 100644
index 0000000000000000000000000000000000000000..0c65d848af5b7b7ac5e32683d0020ee1295e2cae
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache
@@ -0,0 +1,10 @@
+#IncludeRegexLine: ^[ 	]*#[ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+/home/user/scream_panasonic/rtsp/code/rtsp.cpp
+
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..f2551d96b85e061feead869f312d2f60344dff32
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake
@@ -0,0 +1,23 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/user/scream_panasonic/rtsp/code/rtsp.cpp" "/home/user/scream_panasonic/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../include"
+  "."
+  "code"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make
new file mode 100644
index 0000000000000000000000000000000000000000..dca6fe198ad751a65393f072102d4d3c22f87173
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make
@@ -0,0 +1,113 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/rtsp
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/rtsp
+
+# Include any dependencies generated for this target.
+include code/CMakeFiles/rtsp.dir/depend.make
+
+# Include the progress variables for this target.
+include code/CMakeFiles/rtsp.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include code/CMakeFiles/rtsp.dir/flags.make
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/CMakeFiles/rtsp.dir/flags.make
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/rtsp.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/user/scream_panasonic/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/rtsp.dir/rtsp.cpp.o"
+	cd /home/user/scream_panasonic/rtsp/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/rtsp.dir/rtsp.cpp.o -c /home/user/scream_panasonic/rtsp/code/rtsp.cpp
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/rtsp.dir/rtsp.cpp.i"
+	cd /home/user/scream_panasonic/rtsp/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/rtsp/code/rtsp.cpp > CMakeFiles/rtsp.dir/rtsp.cpp.i
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/rtsp.dir/rtsp.cpp.s"
+	cd /home/user/scream_panasonic/rtsp/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/rtsp/code/rtsp.cpp -o CMakeFiles/rtsp.dir/rtsp.cpp.s
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides: code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides.build
+.PHONY : code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides.build: code/CMakeFiles/rtsp.dir/rtsp.cpp.o
+
+
+# Object files for target rtsp
+rtsp_OBJECTS = \
+"CMakeFiles/rtsp.dir/rtsp.cpp.o"
+
+# External object files for target rtsp
+rtsp_EXTERNAL_OBJECTS =
+
+bin/rtsp: code/CMakeFiles/rtsp.dir/rtsp.cpp.o
+bin/rtsp: code/CMakeFiles/rtsp.dir/build.make
+bin/rtsp: code/CMakeFiles/rtsp.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/user/scream_panasonic/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/rtsp"
+	cd /home/user/scream_panasonic/rtsp/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/rtsp.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+code/CMakeFiles/rtsp.dir/build: bin/rtsp
+
+.PHONY : code/CMakeFiles/rtsp.dir/build
+
+code/CMakeFiles/rtsp.dir/requires: code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires
+
+.PHONY : code/CMakeFiles/rtsp.dir/requires
+
+code/CMakeFiles/rtsp.dir/clean:
+	cd /home/user/scream_panasonic/rtsp/code && $(CMAKE_COMMAND) -P CMakeFiles/rtsp.dir/cmake_clean.cmake
+.PHONY : code/CMakeFiles/rtsp.dir/clean
+
+code/CMakeFiles/rtsp.dir/depend:
+	cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/user/scream_panasonic/rtsp /home/user/scream_panasonic/rtsp/code /home/user/scream_panasonic/rtsp /home/user/scream_panasonic/rtsp/code /home/user/scream_panasonic/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : code/CMakeFiles/rtsp.dir/depend
+
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..10971da105656d408d5b9211fbdad98b468bd2a1
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/rtsp.dir/rtsp.cpp.o"
+  "../bin/rtsp.pdb"
+  "../bin/rtsp"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/rtsp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal
new file mode 100644
index 0000000000000000000000000000000000000000..251e10e0eb0c4f4f8c3ab20094537adc4a260867
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal
@@ -0,0 +1,5 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o
+ /home/user/scream_panasonic/rtsp/code/rtsp.cpp
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..b001b20f9ab3ae28c4d149ff8bbc9e80c788c2e9
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make
@@ -0,0 +1,5 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/rtsp.cpp
+
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make
new file mode 100644
index 0000000000000000000000000000000000000000..a1142bb71721959642dae0ae8da79d7e84c85ee8
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -fPIC -fpermissive -pthread   -std=c++0x
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/user/scream_panasonic/rtsp/../include -I/home/user/scream_panasonic/rtsp -I/home/user/scream_panasonic/rtsp/code 
+
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1501be8fc0dd3817f11f29a1999dfebfb48007c4
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++   -fPIC -fpermissive -pthread   CMakeFiles/rtsp.dir/rtsp.cpp.o  -o ../bin/rtsp  -L/home/user/scream_panasonic/rtsp/../lib  -L/usr/local/lib -rdynamic 
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make
new file mode 100644
index 0000000000000000000000000000000000000000..abadeb0c3abaa81d622026fcd3ae096d03dd29b7
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+
diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..07dbe55f536a1fcdf6ca7009fd77809bfc2fad2c
Binary files /dev/null and b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o differ
diff --git a/Laptop/scream/rtsp/code/CMakeLists.txt b/Laptop/scream/rtsp/code/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e7993870e56b59ea3fba48fd168957de108c4a18
--- /dev/null
+++ b/Laptop/scream/rtsp/code/CMakeLists.txt
@@ -0,0 +1,28 @@
+# source files
+SET(SRCS
+rtsp.cpp
+)
+
+SET(HEADERS
+)
+
+SET(SRC_1
+${SRCS}
+rtsp.cpp
+)
+
+INCLUDE_DIRECTORIES(
+${screamIncludes}
+)
+
+LINK_DIRECTORIES(
+${screamLink}
+)
+
+ADD_EXECUTABLE(rtsp ${SRC_1} ${HEADERS})
+
+
+TARGET_LINK_LIBRARIES (
+rtsp
+${screamLibs}
+)
diff --git a/Laptop/scream/rtsp/code/Makefile b/Laptop/scream/rtsp/code/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d61a1ec5c5f358e8c83e0b773ab2b3a636780acb
--- /dev/null
+++ b/Laptop/scream/rtsp/code/Makefile
@@ -0,0 +1,180 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/rtsp
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/rtsp
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles /home/user/scream_panasonic/rtsp/code/CMakeFiles/progress.marks
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+code/CMakeFiles/rtsp.dir/rule:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/rtsp.dir/rule
+.PHONY : code/CMakeFiles/rtsp.dir/rule
+
+# Convenience name for target.
+rtsp: code/CMakeFiles/rtsp.dir/rule
+
+.PHONY : rtsp
+
+# fast build rule for target.
+rtsp/fast:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build
+.PHONY : rtsp/fast
+
+rtsp.o: rtsp.cpp.o
+
+.PHONY : rtsp.o
+
+# target to build an object file
+rtsp.cpp.o:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.o
+.PHONY : rtsp.cpp.o
+
+rtsp.i: rtsp.cpp.i
+
+.PHONY : rtsp.i
+
+# target to preprocess a source file
+rtsp.cpp.i:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.i
+.PHONY : rtsp.cpp.i
+
+rtsp.s: rtsp.cpp.s
+
+.PHONY : rtsp.s
+
+# target to generate assembly for a file
+rtsp.cpp.s:
+	cd /home/user/scream_panasonic/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.s
+.PHONY : rtsp.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... rtsp"
+	@echo "... rtsp.o"
+	@echo "... rtsp.i"
+	@echo "... rtsp.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/rtsp/code/cmake_install.cmake b/Laptop/scream/rtsp/code/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..7f776c8dfc554c62a61573923022277d653fd8a1
--- /dev/null
+++ b/Laptop/scream/rtsp/code/cmake_install.cmake
@@ -0,0 +1,34 @@
+# Install script for directory: /home/user/scream_panasonic/rtsp/code
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
diff --git a/Laptop/scream/rtsp/code/rtsp.cpp b/Laptop/scream/rtsp/code/rtsp.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0f4dbccc03449447f9345cbc535600b3feab5b58
--- /dev/null
+++ b/Laptop/scream/rtsp/code/rtsp.cpp
@@ -0,0 +1 @@
+// Scream sender side wrapper
#include "sys/socket.h"
#include "sys/types.h"
#include "netinet/in.h"
#include <string.h> /* needed for memset */
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <iostream>
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/time.h>
#include <signal.h>
struct itimerval timer;
struct sigaction sa;

using namespace std;

#define BUF_SIZE 10000
char buf[BUF_SIZE];

uint32_t ssrc = 0;
// We don't bother about ssrc in this implementation, it is only one stream

char *ENCODER_IP = "192.168.0.10";

struct sockaddr_in http_addr;
int http_sock = 0;
/*
* Create socket to Video encoder
* for rate commands etc.
*/
int create_tcp_socket() {
	int sock;
	if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){
		cerr << "Can't create TCP socket" << endl;
		exit(1);
	}
	return sock;
}

int setup_rtsp() {
	http_addr.sin_family = AF_INET;
	http_addr.sin_addr.s_addr = htonl(INADDR_ANY);
	inet_aton(ENCODER_IP, (in_addr*)&http_addr.sin_addr.s_addr);
	http_addr.sin_port = htons(554);
	if (connect(http_sock, (struct sockaddr *)&http_addr, sizeof(struct sockaddr)) < 0){
		cerr << "Could not connect to Video coder HTTP server" << endl;
		exit(1);
	}
}

bool verbose = true;
const void sendRtspCommand() {

  int sent = 0;
  int tmpres = 0;
	if (verbose) {
    cerr << "--------------------------------------------" << endl;
    cerr << "Send RTSP : " << endl << buf << endl;
  }
  bool errSend = false;
  /*
  * Send HTTP GET
  */
  while (sent < strlen(buf)) {
    tmpres = send(http_sock, buf + sent, strlen(buf) - sent, 0);
    if (tmpres == -1){
      cerr << "Can't send RTSP" << endl;
      errSend = true;
    }
    sent += tmpres;
  }
  if (true && !errSend) {
    memset(buf, 0, sizeof(buf));
    tmpres = recv(http_sock, buf, BUF_SIZE, 0);

	  if (verbose) {
      cerr << "response: " << endl << buf << endl;
	  }
  }
  if (strstr(buf,"Bad Request")) {
    close(http_sock);
    cerr << "Dishonorable discharge due to malformed request" << endl;
    exit(0);
  }
}

long getTimeInUs(){
  struct timeval tp;
  gettimeofday(&tp, NULL);
  long us = tp.tv_sec * 1000000 + tp.tv_usec;
  return us;
}

bool terminateRtsp = false;
const void *keyboardThread(void *arg) {
    cin.ignore();
    terminateRtsp = true;
}


//#include <curses.h>
char session[100];
int iter = 0;
int INCOMING_RTP_PORT = 30120;
int main(int argc, char* argv[]) {
  int ix = 1;
  int cSeq = 1;
  uint64_t t0 = getTimeInUs();

  /*
  * Parse command line
  */
  if (argc <= 1) {
    cerr << "Usage : " << endl << " rtsp encoder_ip client_rtp_port" << endl;
    exit(-1);
  }
  ENCODER_IP = argv[ix];ix++;
  INCOMING_RTP_PORT = atoi(argv[ix]);ix++;

  http_sock = create_tcp_socket();
  setup_rtsp();

  sprintf(buf, "OPTIONS rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\n\r\n",ENCODER_IP,cSeq++);
  sendRtspCommand();

  sprintf(buf, "DESCRIBE rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nAccept: application/sdp\r\n\r\n",ENCODER_IP,cSeq++);
  sendRtspCommand();

  sprintf(buf, "SETUP rtsp://%s/MediaInput/h264/trackID=1 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nTransport: RTP/AVP;unicast;client_port=%d-%d\r\n\r\n",ENCODER_IP,cSeq++,INCOMING_RTP_PORT,INCOMING_RTP_PORT+1);
  sendRtspCommand();

  char ssrc[100];
  if (strlen(buf) > 0) {
    char *sp = strstr(buf,"ssrc=");
		if (sp) {
			strcpy(ssrc,sp+5);
		}
    sp = strstr(buf,"Session:");
    sp = strtok(sp," ;\r\n");
    sp = strtok(0," ;\r\n");
    strcpy(session,sp);
  }

  sprintf(buf, "PLAY rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\nRange: npt=0.000-\r\n\r\n",ENCODER_IP,cSeq++,session);
  sendRtspCommand();
  sprintf(buf, "GET_PARAMETER rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session);
  sendRtspCommand();

  cerr << "Streaming started. IP:" << ENCODER_IP << " port:" << INCOMING_RTP_PORT << " SSRC:" << ssrc << endl;

  cerr << "RTSP streaming started, press ENTER to stop" << endl;

  pthread_t keyboard_thread;
    /* Create keyboard thread */
  pthread_create(&keyboard_thread,NULL,keyboardThread,"Keyboard thread...");

  verbose = false;

  while (!terminateRtsp) {
    //if (getch() != 0) {
    //  exit = true;
    //}
    sleep(1);
    if (getTimeInUs()-t0 > 1000000) {
			 iter++;
			 if (iter % 30 == 0) {
				 cerr << "Send GET_PARAMETER keep-alive message to keep RTSP session running.\n Press ENTER to stop RTSP" << endl;
         sprintf(buf, "GET_PARAMETER rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session);
         sendRtspCommand();
		   }
       t0 = getTimeInUs();
    }
  }
  verbose = true;

  sprintf(buf, "TEARDOWN rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session);
  sendRtspCommand();

  close(http_sock);

}
\ No newline at end of file
diff --git a/Laptop/scream/scream_receiver/CMakeCache.txt b/Laptop/scream/scream_receiver/CMakeCache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f47b7e962df4246a6637936511d821c04debfd48
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeCache.txt
@@ -0,0 +1,255 @@
+# This is the CMakeCache file.
+# For build in directory: /home/robert/scream/scream_receiver
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=scream
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+scream_BINARY_DIR:STATIC=/home/robert/scream/scream_receiver
+
+//Value Computed by CMake
+scream_SOURCE_DIR:STATIC=/home/robert/scream/scream_receiver
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/robert/scream/scream_receiver
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=7
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/robert/scream/scream_receiver
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake
@@ -0,0 +1,68 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "6.3.0")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
@@ -0,0 +1,69 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "6.3.0")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402
Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55
Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..ee8af328fc16c6b2329ac3bf047f27bc055a28e5
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.10.0-35-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-35-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.10.0-35-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.10.0-35-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,561 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81
Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out differ
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,533 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if __cplusplus >= 201402L
+  "14"
+#elif __cplusplus >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766
Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..fff3727cdc5b167b3dc3445cc87ea09d6f6c2961
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/robert/scream/scream_receiver")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/scream/scream_receiver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/CMakeOutput.log b/Laptop/scream/scream_receiver/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000000000000000000000000000000000000..fbc5e17320bad66dc4bb2c66924603940c171fa7
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,560 @@
+The system is: Linux - 4.10.0-35-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_24c26/fast"
+/usr/bin/make -f CMakeFiles/cmTC_24c26.dir/build.make CMakeFiles/cmTC_24c26.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o   -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_24c26
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_24c26.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o  -o cmTC_24c26 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_c8162/fast"
+/usr/bin/make -f CMakeFiles/cmTC_c8162.dir/build.make CMakeFiles/cmTC_c8162.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_c8162
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c8162.dir/link.txt --verbose=1
+/usr/bin/cc      -v CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o  -o cmTC_c8162 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce5EGm0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c8162 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_c8162/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c8162.dir/build.make CMakeFiles/cmTC_c8162.dir/build]
+  ignore line: [make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc     -o CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_c8162]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c8162.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc      -v CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o  -o cmTC_c8162 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce5EGm0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c8162 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cce5EGm0.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_c8162] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_201be/fast"
+/usr/bin/make -f CMakeFiles/cmTC_201be.dir/build.make CMakeFiles/cmTC_201be.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_201be.dir/feature_tests.c.o
+/usr/bin/cc    -std=c11 -o CMakeFiles/cmTC_201be.dir/feature_tests.c.o   -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c
+Linking C executable cmTC_201be
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_201be.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_201be.dir/feature_tests.c.o  -o cmTC_201be -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:1c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_5d61b/fast"
+/usr/bin/make -f CMakeFiles/cmTC_5d61b.dir/build.make CMakeFiles/cmTC_5d61b.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o
+/usr/bin/cc    -std=c99 -o CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o   -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c
+Linking C executable cmTC_5d61b
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5d61b.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o  -o cmTC_5d61b -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_a3c73/fast"
+/usr/bin/make -f CMakeFiles/cmTC_a3c73.dir/build.make CMakeFiles/cmTC_a3c73.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o
+/usr/bin/cc    -std=c90 -o CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o   -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c
+Linking C executable cmTC_a3c73
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a3c73.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o  -o cmTC_a3c73 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:0c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:0c_variadic_macros
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_a39b5/fast"
+/usr/bin/make -f CMakeFiles/cmTC_a39b5.dir/build.make CMakeFiles/cmTC_a39b5.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o
+/usr/bin/c++      -o CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_a39b5
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a39b5.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o  -o cmTC_a39b5 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_e997c/fast"
+/usr/bin/make -f CMakeFiles/cmTC_e997c.dir/build.make CMakeFiles/cmTC_e997c.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++      -o CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_e997c
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e997c.dir/link.txt --verbose=1
+/usr/bin/c++       -v CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_e997c -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPzJgyp.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e997c /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_e997c/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_e997c.dir/build.make CMakeFiles/cmTC_e997c.dir/build]
+  ignore line: [make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++      -o CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_e997c]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e997c.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++       -v CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_e997c -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPzJgyp.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e997c /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccPzJgyp.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_e997c] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting CXX [-std=c++14] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_d8ed4/fast"
+/usr/bin/make -f CMakeFiles/cmTC_d8ed4.dir/build.make CMakeFiles/cmTC_d8ed4.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++14 -o CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_d8ed4
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d8ed4.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o  -o cmTC_d8ed4 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++11] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_5cbc3/fast"
+/usr/bin/make -f CMakeFiles/cmTC_5cbc3.dir/build.make CMakeFiles/cmTC_5cbc3.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++11 -o CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_5cbc3
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5cbc3.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o  -o cmTC_5cbc3 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++98] compiler features compiled with the following output:
+Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_2c2d6/fast"
+/usr/bin/make -f CMakeFiles/cmTC_2c2d6.dir/build.make CMakeFiles/cmTC_2c2d6.dir/build
+make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++98 -o CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_2c2d6
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2c2d6.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o  -o cmTC_2c2d6 -rdynamic 
+make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:0cxx_alias_templates
+    Feature record: CXX_FEATURE:0cxx_alignas
+    Feature record: CXX_FEATURE:0cxx_alignof
+    Feature record: CXX_FEATURE:0cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:0cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:0cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:0cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:0cxx_default_function_template_args
+    Feature record: CXX_FEATURE:0cxx_defaulted_functions
+    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:0cxx_delegating_constructors
+    Feature record: CXX_FEATURE:0cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:0cxx_explicit_conversions
+    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:0cxx_extern_templates
+    Feature record: CXX_FEATURE:0cxx_final
+    Feature record: CXX_FEATURE:0cxx_func_identifier
+    Feature record: CXX_FEATURE:0cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:0cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:0cxx_inline_namespaces
+    Feature record: CXX_FEATURE:0cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:0cxx_local_type_template_args
+    Feature record: CXX_FEATURE:0cxx_long_long_type
+    Feature record: CXX_FEATURE:0cxx_noexcept
+    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:0cxx_nullptr
+    Feature record: CXX_FEATURE:0cxx_override
+    Feature record: CXX_FEATURE:0cxx_range_for
+    Feature record: CXX_FEATURE:0cxx_raw_string_literals
+    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:0cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:0cxx_rvalue_references
+    Feature record: CXX_FEATURE:0cxx_sizeof_member
+    Feature record: CXX_FEATURE:0cxx_static_assert
+    Feature record: CXX_FEATURE:0cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:0cxx_thread_local
+    Feature record: CXX_FEATURE:0cxx_trailing_return_types
+    Feature record: CXX_FEATURE:0cxx_unicode_literals
+    Feature record: CXX_FEATURE:0cxx_uniform_initialization
+    Feature record: CXX_FEATURE:0cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:0cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:0cxx_variadic_macros
+    Feature record: CXX_FEATURE:0cxx_variadic_templates
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/Makefile.cmake b/Laptop/scream/scream_receiver/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..9359cc32e37ad7ebbefb8b5d20db1eb807fb56d0
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/Makefile.cmake
@@ -0,0 +1,48 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeSystem.cmake"
+  "CMakeLists.txt"
+  "code/CMakeLists.txt"
+  "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  "code/CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "code/CMakeFiles/scream_receiver.dir/DependInfo.cmake"
+  )
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/Makefile2 b/Laptop/scream/scream_receiver/CMakeFiles/Makefile2
new file mode 100644
index 0000000000000000000000000000000000000000..041df9a4a8492bce0b4a217c873485173c255031
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/Makefile2
@@ -0,0 +1,126 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/robert/scream/scream_receiver
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/robert/scream/scream_receiver
+
+#=============================================================================
+# Directory level rules for directory code
+
+# Convenience name for "all" pass in the directory.
+code/all: code/CMakeFiles/scream_receiver.dir/all
+
+.PHONY : code/all
+
+# Convenience name for "clean" pass in the directory.
+code/clean: code/CMakeFiles/scream_receiver.dir/clean
+
+.PHONY : code/clean
+
+# Convenience name for "preinstall" pass in the directory.
+code/preinstall:
+
+.PHONY : code/preinstall
+
+#=============================================================================
+# Target rules for target code/CMakeFiles/scream_receiver.dir
+
+# All Build rule for target.
+code/CMakeFiles/scream_receiver.dir/all:
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/depend
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/robert/scream/scream_receiver/CMakeFiles --progress-num=1,2,3 "Built target scream_receiver"
+.PHONY : code/CMakeFiles/scream_receiver.dir/all
+
+# Include target in all.
+all: code/CMakeFiles/scream_receiver.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+code/CMakeFiles/scream_receiver.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles 3
+	$(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_receiver.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles 0
+.PHONY : code/CMakeFiles/scream_receiver.dir/rule
+
+# Convenience name for target.
+scream_receiver: code/CMakeFiles/scream_receiver.dir/rule
+
+.PHONY : scream_receiver
+
+# clean rule for target.
+code/CMakeFiles/scream_receiver.dir/clean:
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/clean
+.PHONY : code/CMakeFiles/scream_receiver.dir/clean
+
+# clean rule for target.
+clean: code/CMakeFiles/scream_receiver.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt b/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..48b6c0ab9cc85d3b531d7eaafa915c39bbcc21e9
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,5 @@
+/home/robert/scream/scream_receiver/CMakeFiles/rebuild_cache.dir
+/home/robert/scream/scream_receiver/CMakeFiles/edit_cache.dir
+/home/robert/scream/scream_receiver/code/CMakeFiles/rebuild_cache.dir
+/home/robert/scream/scream_receiver/code/CMakeFiles/edit_cache.dir
+/home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/cmake.check_cache b/Laptop/scream/scream_receiver/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin
new file mode 100755
index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72
Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin differ
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.c b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+  const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.cxx b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.cxx
@@ -0,0 +1,405 @@
+
+  const char features[] = {"\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_aggregate_default_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alias_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignof\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attributes\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attribute_deprecated\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_auto_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_binary_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_contextual_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_decltype\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_auto\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_incomplete_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_default_function_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_move_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_delegating_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_deleted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_digit_separators\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_enum_forward_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_explicit_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_extended_friend_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_extern_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_final\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_func_identifier\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_generalized_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_generic_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_inheriting_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_inline_namespaces\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_lambda_init_captures\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_local_type_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_long_long_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_noexcept\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_nonstatic_member_init\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_nullptr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_override\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_range_for\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_raw_string_literals\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_reference_qualified_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_relaxed_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_return_type_deduction\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_right_angle_brackets\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_rvalue_references\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_sizeof_member\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_static_assert\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_strong_enums\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
+"1"
+#else
+"0"
+#endif
+"cxx_template_template_parameters\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_thread_local\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_trailing_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unicode_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_uniform_initialization\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unrestricted_unions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_user_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_variable_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_macros\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_templates\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/scream_receiver/CMakeFiles/progress.marks b/Laptop/scream/scream_receiver/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..00750edc07d6415dcc07ae0351e9397b0222b7ba
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+3
diff --git a/Laptop/scream/scream_receiver/CMakeLists.txt b/Laptop/scream/scream_receiver/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b60cc6e271eb27bdbb63407e960e7094665a282c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/CMakeLists.txt
@@ -0,0 +1,78 @@
+cmake_minimum_required(VERSION 2.6)
+
+PROJECT( scream )
+
+message("Source Dir:" ${scream_SOURCE_DIR})
+
+SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin)
+SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib)
+SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin)
+
+SET(scream_BIN ${scream_SOURCE_DIR}/bin)
+
+message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR})
+
+IF(UNIX)
+add_definitions(-std=c++0x)
+ENDIF(UNIX)
+
+IF(WIN32)
+IF(MSVC12)
+message("Detected MSVC12 compiler")
+set(MSVC_VER VC12)
+ELSEIF(MSVC11)
+message("Detected MSVC11 compiler")
+set(MSVC_VER VC11)
+ELSEIF(MSVC10)
+message("Detected MSVC10 compiler")
+set(MSVC_VER VC10)
+ELSEIF(MSVC14)
+message("Detected MSVC14 compiler")
+set(MSVC_VER VC14)
+ELSE(MSVC12)
+message("WARNING: Unknown/unsupported MSVC version")
+ENDIF(MSVC12)
+ENDIF(WIN32)
+
+if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 64bit
+  message("Detected 64-bit build - compiling with -fPIC")
+  SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread")
+else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 32 bit
+  message("Detected 32-bit build")
+  SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread")
+endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+
+SET(screamIncludes
+${scream_SOURCE_DIR}
+${scream_SOURCE_DIR}/code
+)
+
+message("screamIncludes directories:" ${screamIncludes})
+
+# lib directories
+IF(WIN32)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+)
+ELSEIF(UNIX)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+/usr/local/lib
+/usr/lib
+)
+ENDIF(WIN32)
+
+SET(LibDir
+${scream_SOURCE_DIR}/../lib
+)
+
+message("LibDir directories:" ${LibDir})
+
+# Include directories
+INCLUDE_DIRECTORIES(
+${scream_SOURCE_DIR}/../include
+)
+
+ADD_SUBDIRECTORY( code) 
diff --git a/Laptop/scream/scream_receiver/Makefile b/Laptop/scream/scream_receiver/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..bc054a344a525b834785e905a4a280719c0508d9
--- /dev/null
+++ b/Laptop/scream/scream_receiver/Makefile
@@ -0,0 +1,148 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/robert/scream/scream_receiver
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/robert/scream/scream_receiver
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles /home/robert/scream/scream_receiver/CMakeFiles/progress.marks
+	$(MAKE) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named scream_receiver
+
+# Build rule for target.
+scream_receiver: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 scream_receiver
+.PHONY : scream_receiver
+
+# fast build rule for target.
+scream_receiver/fast:
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build
+.PHONY : scream_receiver/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... scream_receiver"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_receiver/bin/scream_receiver b/Laptop/scream/scream_receiver/bin/scream_receiver
new file mode 100755
index 0000000000000000000000000000000000000000..c47b99cdac96e737a6236524ac3e10cb45293a67
Binary files /dev/null and b/Laptop/scream/scream_receiver/bin/scream_receiver differ
diff --git a/Laptop/scream/scream_receiver/cmake_install.cmake b/Laptop/scream/scream_receiver/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..fcb58b06fda8c1eebe94dac5cd7a7762a75a1a10
--- /dev/null
+++ b/Laptop/scream/scream_receiver/cmake_install.cmake
@@ -0,0 +1,50 @@
+# Install script for directory: /home/robert/scream/scream_receiver
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/robert/scream/scream_receiver/code/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/robert/scream/scream_receiver/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..fff3727cdc5b167b3dc3445cc87ea09d6f6c2961
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/robert/scream/scream_receiver")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/scream/scream_receiver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks b/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..00750edc07d6415dcc07ae0351e9397b0222b7ba
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+3
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache
new file mode 100644
index 0000000000000000000000000000000000000000..8c962fdc569a522c17cf4cf9bcc356dade413f1a
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache
@@ -0,0 +1,68 @@
+#IncludeRegexLine: ^[ 	]*#[ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+/home/robert/scream/scream_receiver/code/ScreamRx.cpp
+ScreamRx.h
+/home/robert/scream/scream_receiver/code/ScreamRx.h
+ScreamTx.h
+/home/robert/scream/scream_receiver/code/ScreamTx.h
+WinSock2.h
+-
+arpa/inet.h
+-
+string.h
+-
+climits
+-
+algorithm
+-
+iostream
+-
+
+/home/robert/scream/scream_receiver/code/ScreamRx.h
+cstdint
+-
+list
+-
+
+/home/robert/scream/scream_receiver/code/ScreamTx.h
+string.h
+-
+iostream
+-
+cstdint
+-
+
+/home/robert/scream/scream_receiver/code/scream_receiver.cpp
+ScreamRx.h
+/home/robert/scream/scream_receiver/code/ScreamRx.h
+sys/socket.h
+/home/robert/scream/scream_receiver/code/sys/socket.h
+sys/types.h
+/home/robert/scream/scream_receiver/code/sys/types.h
+netinet/in.h
+/home/robert/scream/scream_receiver/code/netinet/in.h
+string.h
+-
+sys/socket.h
+-
+netinet/in.h
+-
+arpa/inet.h
+-
+sys/time.h
+-
+iostream
+-
+fcntl.h
+-
+unistd.h
+-
+pthread.h
+-
+
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..1711e4dc9a2e032021b03e22737d009e7d093778
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake
@@ -0,0 +1,24 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/robert/scream/scream_receiver/code/ScreamRx.cpp" "/home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o"
+  "/home/robert/scream/scream_receiver/code/scream_receiver.cpp" "/home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../include"
+  "."
+  "code"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..a598f59386942976b3168bccf0cc162aa3b0a117
Binary files /dev/null and b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o differ
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make
new file mode 100644
index 0000000000000000000000000000000000000000..fa92b06e6312a10150c5d2697b7eda73fc73ebec
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make
@@ -0,0 +1,140 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/robert/scream/scream_receiver
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/robert/scream/scream_receiver
+
+# Include any dependencies generated for this target.
+include code/CMakeFiles/scream_receiver.dir/depend.make
+
+# Include the progress variables for this target.
+include code/CMakeFiles/scream_receiver.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include code/CMakeFiles/scream_receiver.dir/flags.make
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/CMakeFiles/scream_receiver.dir/flags.make
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robert/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o -c /home/robert/scream/scream_receiver/code/ScreamRx.cpp
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/scream/scream_receiver/code/ScreamRx.cpp > CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/scream/scream_receiver/code/ScreamRx.cpp -o CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides.build
+.PHONY : code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides.build: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o
+
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/CMakeFiles/scream_receiver.dir/flags.make
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/scream_receiver.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robert/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o -c /home/robert/scream/scream_receiver/code/scream_receiver.cpp
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/scream/scream_receiver/code/scream_receiver.cpp > CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s"
+	cd /home/robert/scream/scream_receiver/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/scream/scream_receiver/code/scream_receiver.cpp -o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides.build
+.PHONY : code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides.build: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o
+
+
+# Object files for target scream_receiver
+scream_receiver_OBJECTS = \
+"CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" \
+"CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o"
+
+# External object files for target scream_receiver
+scream_receiver_EXTERNAL_OBJECTS =
+
+bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o
+bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o
+bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/build.make
+bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/robert/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/scream_receiver"
+	cd /home/robert/scream/scream_receiver/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/scream_receiver.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+code/CMakeFiles/scream_receiver.dir/build: bin/scream_receiver
+
+.PHONY : code/CMakeFiles/scream_receiver.dir/build
+
+code/CMakeFiles/scream_receiver.dir/requires: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires
+code/CMakeFiles/scream_receiver.dir/requires: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires
+
+.PHONY : code/CMakeFiles/scream_receiver.dir/requires
+
+code/CMakeFiles/scream_receiver.dir/clean:
+	cd /home/robert/scream/scream_receiver/code && $(CMAKE_COMMAND) -P CMakeFiles/scream_receiver.dir/cmake_clean.cmake
+.PHONY : code/CMakeFiles/scream_receiver.dir/clean
+
+code/CMakeFiles/scream_receiver.dir/depend:
+	cd /home/robert/scream/scream_receiver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robert/scream/scream_receiver /home/robert/scream/scream_receiver/code /home/robert/scream/scream_receiver /home/robert/scream/scream_receiver/code /home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : code/CMakeFiles/scream_receiver.dir/depend
+
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3424e1a8f089ece9fd9e4542a26e561697647f7c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o"
+  "CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o"
+  "../bin/scream_receiver.pdb"
+  "../bin/scream_receiver"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/scream_receiver.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal
new file mode 100644
index 0000000000000000000000000000000000000000..4552dd250e90b037e3c3aa879e20ef0f40329e3a
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o
+ /home/robert/scream/scream_receiver/code/ScreamRx.cpp
+ /home/robert/scream/scream_receiver/code/ScreamRx.h
+ /home/robert/scream/scream_receiver/code/ScreamTx.h
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o
+ /home/robert/scream/scream_receiver/code/ScreamRx.h
+ /home/robert/scream/scream_receiver/code/scream_receiver.cpp
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..6ec4d4656db5ce68f7ef9a9e92c95e6cfd84a70a
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.cpp
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.h
+code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamTx.h
+
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/ScreamRx.h
+code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/scream_receiver.cpp
+
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make
new file mode 100644
index 0000000000000000000000000000000000000000..dd6732d63c35ebf65c005434ff2397847c185fab
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -fPIC -fpermissive -pthread   -std=c++0x
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/robert/scream/scream_receiver/../include -I/home/robert/scream/scream_receiver -I/home/robert/scream/scream_receiver/code 
+
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt
new file mode 100644
index 0000000000000000000000000000000000000000..015d098f10aa7a0c987bf1921b3867e529750c6b
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++   -fPIC -fpermissive -pthread   CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o  -o ../bin/scream_receiver  -L/home/robert/scream/scream_receiver/../lib  -L/usr/local/lib -rdynamic 
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make
new file mode 100644
index 0000000000000000000000000000000000000000..6a9dc74f48190611094be92ae37d081d83beb533
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make
@@ -0,0 +1,4 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+CMAKE_PROGRESS_3 = 3
+
diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..b4503a98a7fc89d72ef9d6a7f3b79c2688a918af
Binary files /dev/null and b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o differ
diff --git a/Laptop/scream/scream_receiver/code/CMakeLists.txt b/Laptop/scream/scream_receiver/code/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b1a64ce63037d504a235bad9b4cc40147b28ce0c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/CMakeLists.txt
@@ -0,0 +1,30 @@
+# source files
+SET(SRCS
+ScreamRx.cpp
+scream_receiver.cpp
+)
+
+SET(HEADERS
+ScreamRx.h
+)
+
+SET(SRC_1
+${SRCS}
+scream_receiver.cpp
+)
+
+INCLUDE_DIRECTORIES(
+${screamIncludes}
+)
+
+LINK_DIRECTORIES(
+${screamLink}
+)
+
+ADD_EXECUTABLE(scream_receiver ${SRC_1} ${HEADERS})
+
+
+TARGET_LINK_LIBRARIES (
+scream_receiver
+${screamLibs}
+)
diff --git a/Laptop/scream/scream_receiver/code/Makefile b/Laptop/scream/scream_receiver/code/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..a1cff461ea7e01d26d9fc43915d382d54bef211c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/Makefile
@@ -0,0 +1,210 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/robert/scream/scream_receiver
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/robert/scream/scream_receiver
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/robert/scream/scream_receiver && $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles /home/robert/scream/scream_receiver/code/CMakeFiles/progress.marks
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/robert/scream/scream_receiver && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+code/CMakeFiles/scream_receiver.dir/rule:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_receiver.dir/rule
+.PHONY : code/CMakeFiles/scream_receiver.dir/rule
+
+# Convenience name for target.
+scream_receiver: code/CMakeFiles/scream_receiver.dir/rule
+
+.PHONY : scream_receiver
+
+# fast build rule for target.
+scream_receiver/fast:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build
+.PHONY : scream_receiver/fast
+
+ScreamRx.o: ScreamRx.cpp.o
+
+.PHONY : ScreamRx.o
+
+# target to build an object file
+ScreamRx.cpp.o:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o
+.PHONY : ScreamRx.cpp.o
+
+ScreamRx.i: ScreamRx.cpp.i
+
+.PHONY : ScreamRx.i
+
+# target to preprocess a source file
+ScreamRx.cpp.i:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i
+.PHONY : ScreamRx.cpp.i
+
+ScreamRx.s: ScreamRx.cpp.s
+
+.PHONY : ScreamRx.s
+
+# target to generate assembly for a file
+ScreamRx.cpp.s:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s
+.PHONY : ScreamRx.cpp.s
+
+scream_receiver.o: scream_receiver.cpp.o
+
+.PHONY : scream_receiver.o
+
+# target to build an object file
+scream_receiver.cpp.o:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o
+.PHONY : scream_receiver.cpp.o
+
+scream_receiver.i: scream_receiver.cpp.i
+
+.PHONY : scream_receiver.i
+
+# target to preprocess a source file
+scream_receiver.cpp.i:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i
+.PHONY : scream_receiver.cpp.i
+
+scream_receiver.s: scream_receiver.cpp.s
+
+.PHONY : scream_receiver.s
+
+# target to generate assembly for a file
+scream_receiver.cpp.s:
+	cd /home/robert/scream/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s
+.PHONY : scream_receiver.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... scream_receiver"
+	@echo "... ScreamRx.o"
+	@echo "... ScreamRx.i"
+	@echo "... ScreamRx.s"
+	@echo "... scream_receiver.o"
+	@echo "... scream_receiver.i"
+	@echo "... scream_receiver.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/robert/scream/scream_receiver && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_receiver/code/ScreamRx.cpp b/Laptop/scream/scream_receiver/code/ScreamRx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8f43c821fa7c8c70ae092def39ea7ea6b20a0964
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/ScreamRx.cpp
@@ -0,0 +1,305 @@
+#include "ScreamRx.h"
+#include "ScreamTx.h"
+#ifdef _MSC_VER
+#define NOMINMAX
+#include <WinSock2.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <string.h>
+#include <climits>
+#include <algorithm>
+#include <iostream>
+using namespace std;
+
+
+ScreamRx::Stream::Stream(uint32_t ssrc_) {
+    ssrc = ssrc_;
+    ackVector = 0;
+    receiveTimestamp = 0x0;
+    highestSeqNr = 0x0;
+    highestSeqNrTx = 0x0;
+    lastFeedbackT_us = 0;
+    nRtpSinceLastRtcp = 0;
+    firstReceived = false;
+    ecnCeMarkedBytes = 0;
+}
+
+bool ScreamRx::Stream::checkIfFlushAck() {
+    int diff = highestSeqNr - highestSeqNrTx;
+    return (diff > (kAckVectorBits / 4));
+}
+
+void ScreamRx::Stream::receive(uint64_t time_us,
+    void* rtpPacket,
+    int size,
+    uint16_t seqNr,
+    bool isEcnCe) {
+    nRtpSinceLastRtcp++;
+    /*
+    * Make things wrap-around safe
+    */
+    if (firstReceived == false) {
+        highestSeqNr = seqNr;
+        highestSeqNr--;
+        firstReceived = true;
+    }
+
+    uint32_t seqNrExt = seqNr;
+    uint32_t highestSeqNrExt = highestSeqNr;
+    if (seqNr < highestSeqNr) {
+        if (highestSeqNr - seqNr > 16384)
+            seqNrExt += 65536;
+    }
+    if (highestSeqNr < seqNr) {
+        if (seqNr - highestSeqNr > 16384)
+            highestSeqNrExt += 65536;
+    }
+
+    /*
+    * Update the ACK vector that indicates receiption '=1' of RTP packets prior to
+    * the highest received sequence number. 
+    * The next highest SN is indicated by the least significant bit,
+    * this means that for the first received RTP, the ACK vector is
+    * 0x0, for the second received RTP, the ACK vector it is 0x1, for the third 0x3 and so
+    * on, provided that no packets are lost.
+    * A 64 bit ACK vector means that it theory it is possible to send one feedback every
+    * 64 RTP packets, while this can possibly work at low bitrates, it is less likely to work
+    * at high bitrates because the ACK clocking in SCReAM is disturbed then.
+    */
+    if (seqNrExt >= highestSeqNrExt) {
+        /*
+        * Normal in-order reception
+        */
+        uint16_t diff = seqNrExt - highestSeqNrExt;
+        if (diff != 0) {
+            if (diff >= kAckVectorBits) {
+                ackVector = 0x0000;
+            }
+            else {
+                // Fill with potential zeros
+                ackVector = ackVector << diff;
+                // Add previous highest seq nr to ack vector
+                ackVector |= (INT64_C(1) << (diff - 1));
+            }
+        }
+        highestSeqNr = seqNr;
+    }
+    else {
+        /*
+        * Out-of-order reception
+        */
+        uint16_t diff = highestSeqNrExt - seqNrExt;
+        if (diff < kAckVectorBits) {
+            ackVector = ackVector | (INT64_C(1) << (diff - 1));
+        }
+    }
+    receiveTimestamp = (uint32_t)(time_us / 1000);
+
+    if (isEcnCe)
+        ecnCeMarkedBytes += size;
+}
+
+ScreamRx::ScreamRx(uint32_t ssrc_) {
+    lastFeedbackT_us = 0;
+    bytesReceived = 0;
+    lastRateComputeT_us = 0;
+    averageReceivedRate = 1e5;
+    rtcpFbInterval_us = 20000;
+    ssrc = ssrc_;
+    ix = 0;
+}
+
+bool ScreamRx::checkIfFlushAck() {
+    if (!streams.empty()) {
+        for (auto it = streams.begin(); it != streams.end(); ++it) {
+            if ((*it)->checkIfFlushAck())
+               return true; 
+        }
+    }
+    return false;
+}
+
+void ScreamRx::receive(uint64_t time_us,
+    void* rtpPacket,
+    uint32_t ssrc,
+    int size,
+    uint16_t seqNr,
+    bool isEcnCe) {
+    bytesReceived += size;
+    if (lastRateComputeT_us == 0)
+        lastRateComputeT_us = time_us;
+
+    if (time_us - lastRateComputeT_us > 100000) {
+        /*
+        * Media rate computation (for all medias) is done at least every 100ms
+        * This is used for RTCP feedback rate calculation
+        */
+        float delta = (time_us - lastRateComputeT_us) * 1e-6f;
+        lastRateComputeT_us = time_us;
+        averageReceivedRate = std::max(0.95f*averageReceivedRate, bytesReceived * 8 / delta);
+        bytesReceived = 0;
+        /*
+        * The RTCP feedback rate depends on the received media date
+        * Target ~2% overhead but with feedback interval limited
+        *  to the range [2ms,100ms]
+        */
+        float rate = 0.02*averageReceivedRate / (70.0f * 8.0f); // RTCP overhead
+        rate = std::min(500.0f, std::max(10.0f, rate));
+        /*
+        * More than one stream ?, increase the feedback rate as
+        *  we currently don't bundle feedback packets
+        */
+        rate *= streams.size();
+        rtcpFbInterval_us = uint64_t(1000000.0f / rate);
+    }
+
+    if (!streams.empty()) {
+        for (auto it = streams.begin(); it != streams.end(); ++it) {
+            if ((*it)->isMatch(ssrc)) {
+                /*
+                * Packets for this SSRC received earlier
+                * stream is thus already in list
+                */
+                (*it)->receive(time_us, rtpPacket, size, seqNr, isEcnCe);
+                return;
+
+            }
+        }
+    }
+    /*
+    * New {SSRC,PT}
+    */
+    Stream *stream = new Stream(ssrc);
+    stream->ix = ix++;
+    stream->receive(time_us, rtpPacket, size, seqNr, isEcnCe);
+    streams.push_back(stream);
+}
+
+
+uint64_t ScreamRx::getRtcpFbInterval() {
+    return rtcpFbInterval_us;
+}
+
+bool ScreamRx::isFeedback(uint64_t time_us) {
+    if (!streams.empty()) {
+        for (auto it = streams.begin(); it != streams.end(); ++it) {
+            Stream *stream = (*it);
+            if (stream->nRtpSinceLastRtcp >= 1) {
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
+int ScreamRx::getIx(uint32_t ssrc) {
+    if (!streams.empty()) {
+        for (auto it = streams.begin(); it != streams.end(); ++it) {
+            Stream *stream = (*it);
+            if (ssrc == stream->ssrc)
+                return stream->ix;
+        }
+    }
+    return -1;
+}
+
+bool ScreamRx::getFeedback(uint64_t time_us,
+    uint32_t &ssrc,
+    uint32_t &receiveTimestamp,
+    uint16_t &highestSeqNr,
+    uint64_t &ackVector,
+    uint16_t &ecnCeMarkedBytes) {
+
+    Stream *stream = NULL;
+    uint64_t minT_us = ULLONG_MAX;
+    for (auto it = streams.begin(); it != streams.end(); ++it) {
+        if ((*it)->nRtpSinceLastRtcp > 0 && (*it)->lastFeedbackT_us < minT_us) {
+            stream = *it;
+            minT_us = (*it)->lastFeedbackT_us;
+
+        }
+    }
+
+    if (stream == NULL)
+        return false;
+
+    receiveTimestamp = stream->receiveTimestamp;
+    highestSeqNr = stream->highestSeqNr;
+    stream->highestSeqNrTx = highestSeqNr;
+    ssrc = stream->ssrc;
+    ackVector = stream->ackVector;
+    ecnCeMarkedBytes = stream->ecnCeMarkedBytes;
+    stream->lastFeedbackT_us = time_us;
+    stream->nRtpSinceLastRtcp = 0;
+    lastFeedbackT_us = time_us;
+    return true;
+}
+
+/*
+* Create feedback according to the format below. It is up to the
+* wrapper application to prepend this RTCP with SR or RR when needed
+* BT = 255, means that this is experimental use
+* The code currently only handles one SSRC source per IP packet
+*
+* 0                   1                   2                   3
+* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |V=2|P|reserved |   PT=XR=207   |           length=6            |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                              SSRC                             |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |     BT=255    |    reserved   |         block length=4        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                        SSRC of source                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b0-31)                        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b32-63)                       |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                    Timestamp (32bits)                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+*/
+bool ScreamRx::createFeedback(uint64_t time_us, unsigned char *buf, int &size) {
+
+    if (!isFeedback(time_us))
+        return false;
+    uint32_t timeStamp;
+    uint16_t seqNr;
+    uint64_t ackVector;
+    uint16_t ecnCeMarkedBytes;
+    uint32_t ssrc_src;
+    size = 32;
+    if (getFeedback(time_us, ssrc_src, timeStamp, seqNr, ackVector, ecnCeMarkedBytes)) {
+        uint16_t tmp_s;
+        uint32_t tmp_l;
+        buf[0] = 0x80;
+        buf[1] = 207;
+        tmp_s = htons(6);
+        memcpy(buf + 2, &tmp_s, 2);
+        tmp_l = htonl(ssrc);
+        memcpy(buf + 4, &tmp_l, 4);
+        buf[8] = 0xFF; // BT=255
+        buf[9] = 0x00;
+        tmp_s = htons(4);
+        memcpy(buf + 10, &tmp_s, 2);
+        tmp_l = htonl(ssrc_src);
+        memcpy(buf + 12, &tmp_l, 4);
+        tmp_s = htons(seqNr);
+        memcpy(buf + 16, &tmp_s, 2);
+        tmp_s = htons(ecnCeMarkedBytes);
+        memcpy(buf + 18, &tmp_s, 2);
+        tmp_l = uint32_t((ackVector >> 32) & 0xFFFFFFFF);
+        tmp_l = htonl(tmp_l);
+        memcpy(buf + 20, &tmp_l, 4);
+        tmp_l = uint32_t(ackVector & 0xFFFFFFFF);
+        tmp_l = htonl(tmp_l);
+        memcpy(buf + 24, &tmp_l, 4);
+        tmp_l = htonl(timeStamp);
+        memcpy(buf + 28, &tmp_l, 4);
+        return true;
+    }
+    return false;
+}
diff --git a/Laptop/scream/scream_receiver/code/ScreamRx.h b/Laptop/scream/scream_receiver/code/ScreamRx.h
new file mode 100644
index 0000000000000000000000000000000000000000..f1d9e83c05b476833e82d926ca13d187f9d4179c
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/ScreamRx.h
@@ -0,0 +1,146 @@
+#ifndef SCREAM_RX
+#define SCREAM_RX
+#include <cstdint>
+#include <list>
+const int kAckVectorBits = 64;
+
+/*
+* This module implements the receiver side of SCReAM.
+* As SCReAM is a sender based congestion control, the receiver side is
+*  actually dumber than dumb. In essense the only thing that it does is to
+*  + Record receive time stamps and RTP sequence numbers for incoming RTP packets
+*  + Generate RTCP feedback elements
+*  + Calculate an appropriate RTCP feedback interval
+* See https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf
+*  for details on how it is integrated in audio/video platforms.
+* A full implementation needs the additional code for
+*  + RTCP feedback (e.g using RFC3611 XR elements)
+*  + Other obvious stuff such as RTP payload depacketizer, video+audio deoders, rendering, dejitterbuffers
+* It is recommended that RTCP feedback for multiple streams are bundled in one RTCP packet.
+*  However as low bitrate media (e.g audio) requires a lower feedback rate than high bitrate media (e.g video)
+*  it is possible to include RTCP feedback for the audio stream more seldom. The code for this is T.B.D
+*/
+class ScreamRx {
+public:
+    ScreamRx(uint32_t ssrc); // SSRC of this RTCP session
+    /*
+    * One instance is created for each source SSRC
+    */
+    class Stream {
+    public:
+        Stream(uint32_t ssrc);
+
+        bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; };
+
+        bool checkIfFlushAck();
+        /*
+        * Receive RTP packet
+        */
+        void receive(uint64_t time_us,
+            void *rtpPacket,
+            int size,
+            uint16_t seqNr,
+            bool isEcnCe);
+
+        uint32_t ssrc;                // SSRC of stream (source SSRC)
+        uint16_t highestSeqNr;        // Highest received sequence number
+        uint16_t highestSeqNrTx;      // Highest fed back sequence number
+        uint32_t receiveTimestamp;    // Wall clock time
+        uint64_t ackVector;           // List of received packets
+        uint16_t ecnCeMarkedBytes;    // Number of ECN-CE marked bytes
+                                      //  (i.e size of RTP packets with CE set in IP header)
+
+        uint64_t lastFeedbackT_us;    // Last time feedback transmitted for
+                                      //  this SSRC
+        int nRtpSinceLastRtcp;        // Number of RTP packets since last transmitted RTCP
+
+        bool firstReceived;
+
+        float timeStampConversionFactor;
+
+        int ix;
+    };
+
+    /*
+    * Check to ensure that ACK vector can cover also large holes in
+    *  in the received sequence number space. These cases can frequently occur when
+    *  SCReAM is used in frame discard mode i.e. when real video rate control is
+    *  not possible 
+    */
+    bool checkIfFlushAck();
+
+    /*
+    * Function is called each time an RTP packet is received
+    */
+    void receive(uint64_t time_us,
+        void* rtpPacket,
+        uint32_t ssrc,
+        int size,
+        uint16_t seqNr,
+        bool isEcnCe = false);
+
+    /*
+    * Return TRUE if an RTP packet has been received and there is
+    * pending feedback
+    */
+    bool isFeedback(uint64_t time_us);
+
+    uint64_t getRtcpFbInterval();
+
+    /*
+    * Get SCReAM RTCP feedback elements
+    * return FALSE if no pending feedback available
+    */
+    bool getFeedback(uint64_t time_us,
+        uint32_t &ssrc,
+        uint32_t &receiveTimestamp,
+        uint16_t &highestSeqNr,
+        uint64_t &ackVector,
+        uint16_t &ecnCeMarkedBytes);
+
+    /*
+    * Create feedback according to the format below. It is up to the
+    * wrapper application to prepend this RTCP with SR or RR when needed
+    * BT = 255, means that this is experimental use
+    *
+    * 0                   1                   2                   3
+    * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |V=2|P|reserved |   PT=XR=207   |           length=6            |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                              SSRC                             |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |     BT=255    |    reserved   |         block length=4        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                        SSRC of source                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b0-31)                        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b32-63)                       |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                    Timestamp (32bits)                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    */
+    bool createFeedback(uint64_t time_us, unsigned char *buf, int &size);
+
+    uint64_t getLastFeedbackT() { return lastFeedbackT_us; };
+
+    uint64_t lastFeedbackT_us;
+    int bytesReceived;
+    uint64_t lastRateComputeT_us;
+    float averageReceivedRate;
+    uint64_t rtcpFbInterval_us;
+    uint32_t ssrc;
+
+    int getIx(uint32_t ssrc);
+    int ix;
+
+    /*
+    * Variables for multiple steams handling
+    */
+    std::list<Stream*> streams;
+};
+
+#endif
diff --git a/Laptop/scream/scream_receiver/code/ScreamTx.cpp b/Laptop/scream/scream_receiver/code/ScreamTx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..9017d690d327646c64bd6f0a3edb131dae11170f
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/ScreamTx.cpp
@@ -0,0 +1,1859 @@
+#include "RtpQueue.h"
+#include "ScreamTx.h"
+#include "ScreamRx.h"
+#ifdef _MSC_VER
+#define NOMINMAX
+#include <winSock2.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <cstdint>
+#include <cmath>
+#include <string.h>
+#include <iostream>
+#include <algorithm>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+// === Some good to have features, SCReAM works also
+//     with these disabled
+// Fast start can resume if little or no congestion detected
+static const bool kEnableConsecutiveFastStart = true;
+// Packet pacing reduces jitter
+static const bool kEnablePacketPacing = true;
+static const float kPacketPacingHeadRoom = 1.25f;
+
+// Rate update interval
+static const uint64_t kRateAdjustInterval_us = 200000; // 200ms
+
+// ==== Less important tuning parameters ====
+// Min pacing interval and min pacing rate
+static const float kMinPaceInterval = 0.000f;
+static const float kMinimumBandwidth = 5000.0f; // bps
+// Initial MSS, this is set quite low in order to make it possible to
+//  use SCReAM with audio only
+static const int kInitMss = 100;
+
+// Min and max queue delay target
+static const float kQueueDelayTargetMax = 0.3f; //ms
+
+// Congestion window validation
+static const float kBytesInFlightHistInterval_us = 1000000; // Time (s) between stores 1s
+static const float kMaxBytesInFlightHeadRoom = 1.1f;
+// Queue delay trend and shared bottleneck detection
+static const uint64_t kQueueDelayFractionHistInterval_us = 50000; // 50ms
+// video rate estimation update period
+static const uint64_t kRateUpdateInterval_us = 50000;  // 50ms
+
+// Packet reordering margin (us)
+static const uint64_t kReorderTime_us = 20000;
+static const uint64_t kMinRtpQueueDiscardInterval_us = 1000000;
+
+// Update interval for base delay history
+static const uint64_t kBaseDelayUpdateInterval_us = 10000000;
+
+// Min CWND in MSS
+static int kMinCwndMss = 3;
+
+ScreamTx::ScreamTx(float lossBeta_,
+    float ecnCeBeta_,
+    float queueDelayTargetMin_,
+    bool enableSbd_,
+    float gainUp_,
+    float gainDown_,
+    int cwnd_,
+    float cautiousPacing_,
+    int bytesInFlightHistSize_,
+    bool openWindow_
+    )
+    : sRttSh_us(0),
+    lossBeta(lossBeta_),
+    ecnCeBeta(ecnCeBeta_),
+    queueDelayTargetMin(queueDelayTargetMin_),
+    enableSbd(enableSbd_),
+    gainUp(gainUp_),
+    gainDown(gainDown_),
+    cautiousPacing(cautiousPacing_),
+    bytesInFlightHistSize(bytesInFlightHistSize_),
+    openWindow(openWindow_),
+    sRtt_us(0),
+    sRtt(0.0f),
+    ackedOwd(0),
+    baseOwd(UINT32_MAX),
+    queueDelay(0.0),
+    queueDelayFractionAvg(0.0),
+    queueDelayTrend(0.0),
+    queueDelayTarget(queueDelayTargetMin),
+    queueDelaySbdVar(0.0),
+    queueDelaySbdMean(0.0),
+    queueDelaySbdMeanSh(0.0),
+
+    bytesNewlyAcked(0),
+    mss(kInitMss),
+    cwnd(kInitMss * 2),
+    cwndMin(kInitMss * 2),
+    lastBytesInFlightT_us(0),
+    bytesInFlightMaxLo(0),
+    bytesInFlightMaxHi(0),
+    bytesInFlightHistLoMem(0),
+    bytesInFlightHistHiMem(0),
+    maxBytesInFlight(0.0f),
+
+    lossEvent(false),
+    wasLossEvent(false),
+    lossEventRate(0.0),
+    ecnCeEvent(false),
+
+    inFastStart(true),
+
+    paceInterval_us(0),
+    paceInterval(0.0),
+    rateTransmittedAvg(0.0),
+
+    isInitialized(false),
+    lastSRttUpdateT_us(0),
+    lastBaseOwdAddT_us(0),
+    baseOwdResetT_us(0),
+    lastAddToQueueDelayFractionHistT_us(0),
+    lastLossEventT_us(0),
+    lastTransmitT_us(0),
+    nextTransmitT_us(0),
+    lastRateUpdateT_us(0),
+    accBytesInFlightMax(0),
+    nAccBytesInFlightMax(0),
+    rateTransmitted(0.0f),
+    rateAcked(0.0f),
+    queueDelayTrendMem(0.0f),
+    lastCwndUpdateT_us(0),
+    bytesInFlight(0),
+    lastBaseDelayRefreshT_us(0),
+    maxRate(0.0f),
+    baseOwdHistMin(UINT32_MAX)
+{
+    if (cwnd_ == 0) {
+        cwnd = kInitMss * 2;
+    }
+    else {
+        cwnd = cwnd_;
+    }
+    if (openWindow) {
+        cwndMin = 10000000;
+        cwnd = cwndMin;
+    }
+
+    for (int n = 0; n < kBaseOwdHistSize; n++)
+        baseOwdHist[n] = UINT32_MAX;
+    baseOwdHistPtr = 0;
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++)
+        queueDelayFractionHist[n] = 0.0f;
+    queueDelayFractionHistPtr = 0;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++)
+        queueDelayNormHist[n] = 0.0f;
+    queueDelayNormHistPtr = 0;
+    for (int n = 0; n < kBytesInFlightHistSizeMax; n++) {
+        bytesInFlightHistLo[n] = 0;
+        bytesInFlightHistHi[n] = 0;
+    }
+    bytesInFlightHistPtr = 0;
+    nStreams = 0;
+    for (int n = 0; n < kMaxStreams; n++)
+        streams[n] = NULL;
+
+    queueDelayMax = 0.0f;
+    queueDelayMinAvg = 0.0f;
+    queueDelayMin = 1000.0;
+
+    statistics = new Statistics();
+}
+
+ScreamTx::~ScreamTx() {
+    for (int n = 0; n < nStreams; n++)
+        delete streams[n];
+    delete statistics;
+}
+
+ScreamTx::Statistics::Statistics() {
+    sumRateTx = 0.0f;
+    sumRateLost = 0.0f;
+    avgRateTx = 0.0f;
+    avgRtt = 0.0f;
+    avgQueueDelay = 0.0f;
+    rateLostAcc = 0.0f;
+    rateLostN = 0;
+    for (int n = 0; n < kLossRateHistSize; n++) {
+        lossRateHist[n] = 0.0f;
+    }
+    lossRateHistPtr = 0;
+}
+
+void ScreamTx::Statistics::add(float rateTx, float rateLost, float rtt, float queueDelay) {
+    const float alpha = 0.98f;
+    sumRateTx += rateTx;
+    sumRateLost += rateLost;
+    if (avgRateTx == 0.0f) {
+        avgRateTx = rateTx;
+        avgRtt = rtt;
+        avgQueueDelay = queueDelay;
+    }
+    else {
+        avgRateTx = alpha*avgRateTx + (1.0f - alpha)*rateTx;
+        rateLostAcc += rateLost;
+        rateLostN++;
+        if (rateLostN == 10) {
+            rateLostAcc /= 10;
+            rateLostN = 0;
+            float lossRate = 0.0f;
+            if (rateTx > 0)
+                lossRate = rateLostAcc / rateTx*100.0f;
+            lossRateHist[lossRateHistPtr] = lossRate;
+            lossRateHistPtr = (lossRateHistPtr + 1) % kLossRateHistSize;
+        }
+        avgRtt = alpha*avgRtt + (1.0f - alpha)*rtt;
+        avgQueueDelay = alpha*avgQueueDelay + (1.0f - alpha)*queueDelay;
+    }
+}
+
+void ScreamTx::Statistics::getSummary(float time, char s[]) {
+    float lossRate = 0.0f;
+    for (int n = 0; n < kLossRateHistSize; n++)
+        lossRate += lossRateHist[n];
+    lossRate /= kLossRateHistSize;
+    float lossRateLong = 0.0f;
+    if (sumRateTx > 100000.0f) {
+        lossRateLong = sumRateLost / sumRateTx*100.0f;
+    }
+    sprintf(s, "%5.1f  Transmit rate = %5.0fkbps, PLR = %5.2f%%(%5.2f%%), RTT = %5.3fs, Queue delay = %5.3fs",
+        time,
+        avgRateTx / 1000.0f,
+        lossRate,
+        lossRateLong,
+        avgRtt,
+        avgQueueDelay);
+}
+
+/*
+* Register new stream
+*/
+void ScreamTx::registerNewStream(RtpQueueIface *rtpQueue,
+    uint32_t ssrc,
+    float priority,
+    float minBitrate,
+    float startBitrate,
+    float maxBitrate,
+    float rampUpSpeed,
+    float maxRtpQueueDelay,
+    float txQueueSizeFactor,
+    float queueDelayGuard,
+    float lossEventRateScale,
+    float ecnCeEventRateScale) {
+    Stream *stream = new Stream(this,
+        rtpQueue,
+        ssrc,
+        priority,
+        minBitrate,
+        startBitrate,
+        maxBitrate,
+        rampUpSpeed,
+        maxRtpQueueDelay,
+        txQueueSizeFactor,
+        queueDelayGuard,
+        lossEventRateScale,
+        ecnCeEventRateScale);
+    streams[nStreams++] = stream;
+}
+
+void ScreamTx::updateBitrateStream(uint32_t ssrc,
+    float minBitrate,
+    float maxBitrate) {
+    Stream *stream = getStream(ssrc);
+    stream->minBitrate = minBitrate;
+    stream->maxBitrate = maxBitrate;
+}
+
+RtpQueueIface * ScreamTx::getStreamQueue(uint32_t ssrc) {
+    Stream* stream = getStream(ssrc);
+    return stream->rtpQueue;
+}
+
+
+/*
+* New media frame
+*/
+void ScreamTx::newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp) {
+    if (!isInitialized) initialize(time_us);
+
+    Stream *stream = getStream(ssrc);
+    stream->updateTargetBitrate(time_us);
+    if (time_us - lastCwndUpdateT_us < 500000) {
+        /*
+        * We expect feedback at least every 500ms
+        * to update the target rate.
+        */
+        stream->updateTargetBitrate(time_us);
+    }
+    if (time_us - lastBaseDelayRefreshT_us < sRtt_us * 2) {
+        /*
+        * _Very_ long periods of congestion can cause the base delay to increase
+        * with the effect that the queue delay is estimated wrong, therefore we seek to
+        * refresh the whole thing by deliberately allowing the network queue to drain
+        * Clear the RTP queue for 2 RTTs, this will allow the queue to drain so that we
+        * get a good estimate for the min queue delay.
+        * This funtion is executed very seldom so it should not affect overall experience too much
+        */
+        stream->rtpQueue->clear();
+    }
+    else {
+        stream->bytesRtp += bytesRtp;
+        /*
+        * Need to update MSS here, otherwise it will be nearly impossible to
+        * transmit video packets, this because of the small initial MSS
+        * which is necessary to make SCReAM work with audio only
+        */
+        int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp();
+        mss = std::max(mss, sizeOfNextRtp);
+        if (!openWindow)
+            cwndMin = 2 * mss;
+        cwnd = max(cwnd, cwndMin);
+    }
+}
+
+/*
+* Determine if OK to transmit RTP packet
+*/
+float ScreamTx::isOkToTransmit(uint64_t time_us, uint32_t &ssrc) {
+    if (!isInitialized) initialize(time_us);
+    /*
+    * Update rateTransmitted and rateAcked if time for it
+    * This is used in video rate computation
+    * The update interval is doubled at very low bitrates,
+    * the reason is that the feedback interval is very low then and
+    * a longer window is needed to avoid aliasing effects
+    */
+    uint64_t tmp = kRateUpdateInterval_us;
+
+    if (rateAcked < 50000.0f) {
+        tmp *= 2;
+    }
+
+    if (time_us - lastRateUpdateT_us > tmp) {
+        rateTransmitted = 0.0;
+        rateAcked = 0.0;
+        for (int n = 0; n < nStreams; n++) {
+            streams[n]->updateRate(time_us);
+            rateTransmitted += streams[n]->rateTransmitted;
+            rateTransmittedAvg = 0.8*rateTransmittedAvg + 0.2*rateTransmitted;
+            rateAcked += streams[n]->rateAcked;
+            if (n == 0)
+                statistics->add(streams[0]->rateTransmitted, streams[0]->rateLost, sRtt, queueDelay);
+        }
+        lastRateUpdateT_us = time_us;
+        /*
+        * Adjust stream priorities
+        */
+        adjustPriorities(time_us);
+
+        /*
+        * Update maxRate
+        */
+        maxRate = 0.0f;
+        for (int n = 0; n < nStreams; n++)
+            maxRate += streams[n]->getMaxRate();
+    }
+
+    /*
+    * Get index to the prioritized RTP queue
+    */
+    Stream* stream = getPrioritizedStream(time_us);
+
+    if (stream == NULL)
+        /*
+        * No RTP packets to transmit
+        */
+        return -1.0f;
+    ssrc = stream->ssrc;
+
+    bytesInFlightMaxHi = std::max(bytesInFlight, bytesInFlightMaxHi);
+
+    /*
+    * Update bytes in flight history for congestion window validation
+    */
+    if (time_us - lastBytesInFlightT_us > kBytesInFlightHistInterval_us) {
+        bytesInFlightMaxLo = 0;
+        if (nAccBytesInFlightMax > 0) {
+            bytesInFlightMaxLo = accBytesInFlightMax / nAccBytesInFlightMax;
+        }
+        bytesInFlightHistLo[bytesInFlightHistPtr] = bytesInFlightMaxLo;
+        bytesInFlightHistHi[bytesInFlightHistPtr] = bytesInFlightMaxHi;
+        bytesInFlightHistPtr = (bytesInFlightHistPtr + 1) % bytesInFlightHistSize;
+        lastBytesInFlightT_us = time_us;
+        accBytesInFlightMax = 0;
+        nAccBytesInFlightMax = 0;
+        bytesInFlightMaxHi = 0;
+        bytesInFlightHistLoMem = 0;
+        bytesInFlightHistHiMem = 0;
+        for (int n = 0; n < bytesInFlightHistSize; n++) {
+            bytesInFlightHistLoMem = std::max(bytesInFlightHistLoMem, bytesInFlightHistLo[n]);
+            bytesInFlightHistHiMem = std::max(bytesInFlightHistHiMem, bytesInFlightHistHi[n]);
+        }
+
+        /*
+        * In addition, reset MSS, this is useful in case for instance
+        * a video stream is put on hold, leaving only audio packets to be
+        * transmitted
+        */
+        mss = kInitMss;
+        if (!openWindow)
+            cwndMin = kMinCwndMss * mss;
+        cwnd = max(cwnd, cwndMin);
+    }
+
+    int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp();
+    if (sizeOfNextRtp == -1){
+        return -1.0f;
+    }
+    /*
+    * Determine if window is large enough to transmit
+    * an RTP packet
+    */
+    bool exit = false;
+    if (queueDelay < queueDelayTarget)
+        exit = (bytesInFlight + sizeOfNextRtp) > cwnd + mss;
+    else
+        exit = (bytesInFlight + sizeOfNextRtp) > cwnd;
+    /*
+    * Enforce packet pacing
+    */
+    float retVal = 0.0f;
+    if (kEnablePacketPacing && nextTransmitT_us > time_us){
+        retVal = (nextTransmitT_us - time_us) * 1e-6f;
+    }
+
+    /*
+    * A retransmission time out mechanism to avoid deadlock
+    */
+    if (time_us - lastTransmitT_us > 500000 && lastTransmitT_us < time_us) { // 200ms
+        for (int n = 0; n < kMaxTxPackets; n++) {
+            stream->txPackets[n].isUsed = false;
+        }
+        bytesInFlight = 0;
+        exit = false;
+        retVal = 0.0f;
+    }
+
+    if (!exit) {
+        /*
+        * Return value 0.0 = RTP packet can be immediately transmitted
+        */
+        return retVal;
+    }
+
+    return -1.0f;
+}
+
+/*
+* RTP packet transmitted
+*/
+float ScreamTx::addTransmitted(uint64_t time_us,
+    uint32_t ssrc,
+    int size,
+    uint16_t seqNr) {
+    if (!isInitialized)
+        initialize(time_us);
+
+    Stream *stream = getStream(ssrc);
+
+    int ix = seqNr % kMaxTxPackets;
+    Transmitted *txPacket = &(stream->txPackets[ix]);
+    if (txPacket->isUsed) {
+        /*
+        * This event should occur quite rarely.
+        * The most likely reason is that thoughput has dropped
+        * considerably.
+        * Therefore we clean the list and set cwnd and bitrate low
+        */
+        for (int n = 0; n < kMaxTxPackets; n++) {
+            stream->txPackets[n].isUsed = false;
+        }
+        bytesInFlight = 0;//-= txPacket->size;
+        cwnd = cwndMin;
+        stream->targetBitrate = stream->minBitrate;
+    }
+    stream->hiSeqTx = seqNr;
+    txPacket->timestamp = (uint32_t)(time_us / 1000);
+    txPacket->timeTx_us = time_us;
+    txPacket->size = size;
+    txPacket->seqNr = seqNr;
+    txPacket->isUsed = true;
+    txPacket->isAcked = false;
+    txPacket->isAfterReceivedEdge = false;
+
+    /*
+    * Update bytesInFlight
+    */
+    bytesInFlight += size;
+
+    stream->bytesTransmitted += size;
+    lastTransmitT_us = time_us;
+    /*
+    * Add credit to unserved streams
+    */
+    addCredit(time_us, stream, size);
+    /*
+    * Reduce used credit for served stream
+    */
+    subtractCredit(time_us, stream, size);
+
+    /*
+    * Update MSS and cwndMin
+    */
+    mss = std::max(mss, size);
+    if (!openWindow)
+        cwndMin = 2 * mss;
+    cwnd = max(cwnd, cwndMin);
+
+    /*
+    * Determine when next RTP packet can be transmitted
+    */
+    if (kEnablePacketPacing)
+        nextTransmitT_us = time_us + paceInterval_us;
+    else
+        nextTransmitT_us = time_us;
+
+    return paceInterval;
+}
+
+/*
+* Parse feedback according to the format below. It is up to the
+* wrapper application this RTCP from a compound RTCP if needed
+* BT = 255, means that this is experimental use.
+* The code currently only handles one SSRC source per IP packet
+*
+* 0                   1                   2                   3
+* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |V=2|P|reserved |   PT=XR=207   |           length=6            |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                              SSRC                             |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |     BT=255    |    reserved   |         block length=4        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                        SSRC of source                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b0-31)                        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b32-63)                       |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                    Timestamp (32bits)                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+*/
+void ScreamTx::incomingFeedback(uint64_t time_us,
+    unsigned char* buf,
+    int size) {
+    if (!(size == 32 && buf[0] == 0x80 && buf[1] == 207 && buf[8] == 255)) {
+        // This does not seem as a valid size, exit function
+        return;
+    }
+    uint32_t tmp_l_1;
+    uint16_t tmp_s;
+    uint32_t tmp_l_2;
+    uint32_t timeStamp;
+    uint16_t seqNr;
+    uint64_t ackVector;
+    uint16_t ecnCeMarkedBytes;
+    uint32_t ssrc;
+    uint16_t rawSeq;
+    memcpy(&tmp_l_1, buf + 12, 4);
+    ssrc = ntohl(tmp_l_1);
+    memcpy(&seqNr, buf + 16, 2);
+    seqNr = ntohs(seqNr);
+    memcpy(&ecnCeMarkedBytes, buf + 18, 2);
+    ecnCeMarkedBytes = ntohs(ecnCeMarkedBytes);
+    memcpy(&tmp_l_1, buf + 20, 4);
+    memcpy(&tmp_l_2, buf + 24, 4);
+    tmp_l_1 = ntohl(tmp_l_1);
+    tmp_l_2 = ntohl(tmp_l_2);
+    ackVector = ((uint64_t(tmp_l_1)) << 32) | tmp_l_2;
+    memcpy(&timeStamp, buf + 28, 4);
+    timeStamp = ntohl(timeStamp);
+    incomingFeedback(time_us, ssrc, timeStamp, seqNr, ackVector, ecnCeMarkedBytes);
+}
+/*
+* New incoming feedback
+*/
+void ScreamTx::incomingFeedback(uint64_t time_us,
+    uint32_t ssrc,
+    uint32_t timestamp,
+    uint16_t highestSeqNr,
+    uint64_t ackVector,
+    uint16_t ecnCeMarkedBytes) {
+
+    if (!isInitialized) initialize(time_us);
+    Stream *stream = getStream(ssrc);
+    if (stream == 0) {
+        // Bogus RTCP?, the SSRC is wrong anyway, Skip
+        return;
+    }
+
+    uint16_t diff = highestSeqNr - stream->hiSeqAck;
+    if (diff > 65000 && stream->hiSeqAck != 0 && stream->timeTxAck_us != 0) {
+        /*
+        * Out of order received ACKs are ignored
+        */
+        return;
+    }
+    accBytesInFlightMax += bytesInFlight;
+    nAccBytesInFlightMax++;
+    Transmitted *txPackets = stream->txPackets;
+    /*
+    * Mark received packets, given by the ACK vector
+    */
+    markAcked(time_us, txPackets, highestSeqNr, ackVector, timestamp, stream);
+
+    /*
+    * Detect lost pakcets
+    */
+    detectLoss(time_us, txPackets, highestSeqNr, stream);
+
+    if (ecnCeMarkedBytes != stream->ecnCeMarkedBytes && time_us - lastLossEventT_us > sRtt_us) {
+        ecnCeEvent = true;
+        lastLossEventT_us = time_us;
+    }
+    stream->ecnCeMarkedBytes = ecnCeMarkedBytes;
+
+    if (lossEvent || ecnCeEvent) {
+        lastLossEventT_us = time_us;
+        for (int n = 0; n < nStreams; n++) {
+            Stream *tmp = streams[n];
+            if (lossEvent)
+                tmp->lossEventFlag = true;
+            else
+                tmp->ecnCeEventFlag = true;
+        }
+    }
+
+    if (lastCwndUpdateT_us == 0)
+        lastCwndUpdateT_us = time_us;
+
+    if (time_us - lastCwndUpdateT_us > 10000) {
+        /*
+        * There is no gain with a too frequent CWND update
+        * An update every 10ms is fast enough even at very high high bitrates
+        */
+        updateCwnd(time_us);
+        lastCwndUpdateT_us = time_us;
+    }
+}
+
+/*
+*  Mark ACKed RTP packets
+*/
+void ScreamTx::markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream) {
+    /*
+    * Loop only through the packets that are covered by the last highest ACK, this saves complexity
+    */
+    int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets;
+    int ix0 = stream->hiSeqAck + 1;
+    if (ix0 < 0) ix0 += kMaxTxPackets;
+    while (ix1 < ix0)
+        ix1 += kMaxTxPackets;
+    for (int m = ix0; m <= ix1; m++) {
+        int n = m % kMaxTxPackets;
+        /*
+        * Loop through TX packets
+        */
+        if (txPackets[n].isUsed) {
+            /*
+            * RTP packet is in flight
+            */
+            Transmitted *tmp = &txPackets[n];
+
+            /*
+            * Compute SN difference
+            */
+            uint16_t diff = highestSeqNr - tmp->seqNr;
+            diff -= 1;
+
+            if (diff <= kAckVectorBits) {
+                if (ackVector & (INT64_C(1) << diff)) {
+                    /*
+                    * SN marked as received
+                    */
+                    tmp->isAcked = true;
+                }
+            }
+
+            /*
+            * Receiption of packet given by highestSeqNr
+            */
+            if (tmp->seqNr == highestSeqNr) {
+                tmp->isAcked = true;
+                ackedOwd = timestamp - tmp->timestamp;
+                /*
+                * Compute the queue delay
+                */
+                uint32_t qDel = estimateOwd(time_us);
+                qDel -= getBaseOwd();
+
+                /*
+                * Convert from [jiffy] OWD to an OWD in [s]
+                */
+                queueDelay = qDel / kTimestampRate;
+
+                uint64_t rtt = time_us - tmp->timeTx_us;
+
+                sRttSh_us = (7 * sRttSh_us + rtt) / 8;
+                if (time_us - lastSRttUpdateT_us > sRttSh_us) {
+                    sRtt_us = (7 * sRtt_us + sRttSh_us) / 8;
+                    lastSRttUpdateT_us = time_us;
+                    sRtt = sRtt_us*1e-6f;
+                }
+                stream->timeTxAck_us = tmp->timeTx_us;
+            }
+        }
+    }
+}
+
+/*
+* Detect lost RTP packets
+*/
+void ScreamTx::detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream) {
+    /*
+    * Loop only through the packets that are covered by the last highest ACK, this saves complexity
+    * There is a faint possibility that we miss to detect large bursts of lost packets with this fix
+    */
+    int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets;
+    int ix0 = stream->hiSeqAck + 1;
+    stream->hiSeqAck = highestSeqNr;
+    if (ix0 < 0) ix0 += kMaxTxPackets;
+    while (ix1 < ix0)
+        ix1 += kMaxTxPackets;
+
+    /*
+    * Mark packets outside the 64 bit ACK vector range as forever lost
+    */
+    if (stream->lastLossDetectIx >= 0) {
+        int ix0_ = ix0;
+        if (stream->lastLossDetectIx > ix0_) ix0_ += kMaxTxPackets;
+        for (int m = stream->lastLossDetectIx; m < ix0_; m++) {
+            int n = m % kMaxTxPackets;
+            if (txPackets[n].isUsed) {
+                Transmitted *tmp = &txPackets[n];
+                if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) {
+                    lossEvent = true;
+                }
+                stream->bytesLost += tmp->size;
+                tmp->isUsed = false;
+                stream->repairLoss = true;
+            }
+        }
+    }
+    stream->lastLossDetectIx = ix0;
+
+    /*
+    * Mark late packets as lost
+    */
+    for (int m = ix0; m <= ix1; m++) {
+        int n = m % kMaxTxPackets;
+        /*
+        * Loop through TX packets
+        */
+        if (txPackets[n].isUsed) {
+            Transmitted *tmp = &txPackets[n];
+            /*
+            * RTP packet is in flight
+            */
+            /*
+            * Wrap-around safety net
+            */
+            uint32_t seqNrExt = tmp->seqNr;
+            uint32_t highestSeqNrExt = highestSeqNr;
+            if (seqNrExt < highestSeqNrExt && highestSeqNrExt - seqNrExt > 20000)
+                seqNrExt += 65536;
+            else if (seqNrExt > highestSeqNrExt && seqNrExt - highestSeqNrExt > 20000)
+                highestSeqNrExt += 65536;
+
+            /*
+            * RTP packets with a sequence number lower
+            * than or equal to the highest received sequence number
+            * are treated as received even though they are not
+            * This advances the send window, similar to what
+            * SACK does in TCP
+            */
+            if (seqNrExt <= highestSeqNrExt && tmp->isAfterReceivedEdge == false) {
+                bytesNewlyAcked += tmp->size;
+                bytesInFlight -= tmp->size;
+                if (bytesInFlight < 0)
+                    bytesInFlight = 0;
+                stream->bytesAcked += tmp->size;
+                tmp->isAfterReceivedEdge = true;
+            }
+
+            if (tmp->timeTx_us + kReorderTime_us < stream->timeTxAck_us && !tmp->isAcked) {
+                /*
+                * Packet ACK is delayed more than kReorderTime_us after an ACK of a higher SN packet
+                * raise a loss event and remove from TX list
+                */
+                if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) {
+                    lossEvent = true;
+                }
+                stream->bytesLost += tmp->size;
+                tmp->isUsed = false;
+                stream->repairLoss = true;
+            }
+            else if (tmp->isAcked) {
+                tmp->isUsed = false;
+            }
+        }
+    }
+
+}
+
+float ScreamTx::getTargetBitrate(uint32_t ssrc) {
+    return  getStream(ssrc)->getTargetBitrate();
+}
+
+void ScreamTx::setTargetPriority(uint32_t ssrc, float priority) {
+    Stream *stream = getStream(ssrc);
+    if (queueDelayTrend > 0.02) {
+        stream->targetBitrate *= priority / stream->targetPriority;
+        stream->targetBitrate = std::min(std::max(stream->targetBitrate, stream->minBitrate), stream->maxBitrate);
+    }
+    stream->targetPriority = priority;
+    stream->targetPriorityInv = 1.0f / priority;
+}
+
+void ScreamTx::getLog(float time, char *s) {
+    int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem);
+    sprintf(s, "%4.3f, %4.3f, %4.3f, %4.3f, %6d, %6d, %6.0f, %1d, ",
+        queueDelay, queueDelayMax, queueDelayMinAvg, sRtt,
+        cwnd, bytesInFlight, rateTransmitted / 1000.0f, isInFastStart());
+
+    queueDelayMax = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        char s2[200];
+        sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %6.0f, %5.0f, %5d, ",
+            std::max(0.0f, tmp->rtpQueue->getDelay(time)),
+            tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f,
+            tmp->rateTransmitted / 1000.0f, tmp->rateAcked / 1000.0f,
+            tmp->rateLost / 1000.0f,
+            tmp->hiSeqAck);
+        strcat(s, s2);
+    }
+}
+
+void ScreamTx::getShortLog(float time, char *s) {
+    int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem);
+    sprintf(s, "%4.3f, %4.3f, %6d, %6d, %6.0f, ",
+        queueDelayMax, sRtt,
+        cwnd, bytesInFlight, rateTransmitted / 1000.0f);
+
+    queueDelayMax = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        char s2[200];
+        sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %5.0f, ",
+            std::max(0.0f, tmp->rtpQueue->getDelay(time)),
+            tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f,
+            tmp->rateTransmitted / 1000.0f,
+            tmp->rateLost / 1000.0f);
+        strcat(s, s2);
+    }
+}
+
+void ScreamTx::getStatistics(float time, char *s) {
+    statistics->getSummary(time, s);
+}
+
+void ScreamTx::initialize(uint64_t time_us) {
+    isInitialized = true;
+    lastSRttUpdateT_us = time_us;
+    lastBaseOwdAddT_us = time_us;
+    baseOwdResetT_us = time_us;
+    lastAddToQueueDelayFractionHistT_us = time_us;
+    lastLossEventT_us = time_us;
+    lastTransmitT_us = time_us;
+    nextTransmitT_us = time_us;
+    lastRateUpdateT_us = time_us;
+    lastAdjustPrioritiesT_us = time_us;
+    lastRttT_us = time_us;
+    lastBaseDelayRefreshT_us = time_us + 1000000;
+    initTime_us = time_us;
+}
+
+/*
+* Update the  congestion window
+*/
+void ScreamTx::updateCwnd(uint64_t time_us) {
+    float dT = 0.001;
+    if (lastCwndUpdateT_us == 0)
+        lastCwndUpdateT_us = time_us;
+    else
+        dT = (time_us - lastCwndUpdateT_us) * 1e-6f;
+
+    /*
+    * This adds a limit to how much the CWND can grow, it is particularly useful
+    * in case of short gliches in the transmission, in which a large chunk of data is delivered
+    * in a burst with the effect that the estimated queue delay is low because it typically depict the queue
+    * delay for the last non-delayed RTP packet. The rule is that the CWND cannot grow faster
+    * than the 1.25 times the average amount of bytes that transmitted in the given feedback interval
+    */
+    float bytesNewlyAckedLimited = bytesNewlyAcked;
+    if (maxRate > 1.0e5f)
+        bytesNewlyAckedLimited = std::min(bytesNewlyAckedLimited, 1.25f*maxRate*dT / 8.0f);
+    else
+        bytesNewlyAckedLimited = 2.0f*mss;
+
+    queueDelayMin = std::min(queueDelayMin, queueDelay);
+
+    queueDelayMax = std::max(queueDelayMax, queueDelay);
+
+    float time = time_us*1e-6;
+    if (queueDelayMinAvg > 0.25f*queueDelayTarget && time_us - baseOwdResetT_us > 20000000) {
+        /*
+        * The base OWD is likely wrong, for instance due to
+        * a channel change or clock drift, reset base OWD history
+        */
+        queueDelayMinAvg = 0.0f;
+        queueDelay = 0.0f;
+        for (int n = 0; n < kBaseOwdHistSize; n++)
+            baseOwdHist[n] = UINT32_MAX;
+        baseOwd = UINT32_MAX;
+        baseOwdHistMin = UINT32_MAX;
+        baseOwdResetT_us = time_us;
+    }
+    /*
+    * An averaged version of the queue delay fraction
+    * neceassary in order to make video rate control robust
+    * against jitter
+    */
+    queueDelayFractionAvg = 0.9f*queueDelayFractionAvg + 0.1f*getQueueDelayFraction();
+
+    /*
+    * Less frequent updates here
+    * + Compute pacing interval
+    * + Save to queue delay fraction history
+    *   used in computeQueueDelayTrend()
+    * + Update queueDelayTarget
+    */
+    if ((time_us - lastAddToQueueDelayFractionHistT_us) >
+        kQueueDelayFractionHistInterval_us) {
+
+        /*
+        * compute paceInterval, we assume a min bw of 50kbps and a min tp of 1ms
+        * for stable operation
+        * this function implements the packet pacing
+        */
+        paceInterval = kMinPaceInterval;
+        if (queueDelayFractionAvg > 0.05f && kEnablePacketPacing) {
+            /*
+            * The cautiousPacing parameter restricts transmission of large key frames when the parameter is set to a value closer to 1.0
+            */
+            float pacingBitrate = (1.0 - cautiousPacing)*cwnd * 8.0f / std::max(0.001f, sRtt) + cautiousPacing*rateTransmittedAvg;
+            pacingBitrate = kPacketPacingHeadRoom*std::max(kMinimumBandwidth, pacingBitrate);
+            float tp = (mss * 8.0f) / pacingBitrate;
+            paceInterval = std::max(kMinPaceInterval, tp);
+        }
+        paceInterval_us = (uint64_t)(paceInterval * 1000000);
+
+        if (queueDelayMin < queueDelayMinAvg)
+            queueDelayMinAvg = queueDelayMin;
+        else
+            queueDelayMinAvg = 0.001f*queueDelayMin + 0.999f*queueDelayMinAvg;
+        queueDelayMin = 1000.0f;
+        /*
+        * Need to duplicate insertion incase the feedback is sparse
+        */
+        int nIter = (int)(time_us - lastAddToQueueDelayFractionHistT_us) / kQueueDelayFractionHistInterval_us;
+        for (int n = 0; n < nIter; n++) {
+            queueDelayFractionHist[queueDelayFractionHistPtr] = getQueueDelayFraction();
+            queueDelayFractionHistPtr = (queueDelayFractionHistPtr + 1) % kQueueDelayFractionHistSize;
+        }
+
+        if (time_us - initTime_us > 2000000) {
+            /*
+            * Queue delay trend calculations are reliable after ~2s
+            */
+            computeQueueDelayTrend();
+        }
+
+        queueDelayTrendMem = std::max(queueDelayTrendMem*0.98f, queueDelayTrend);
+
+        /*
+        * Compute bytes in flight limitation
+        */
+        int maxBytesInFlightHi = (int)(std::max(bytesInFlightMaxHi, bytesInFlightHistHiMem));
+        int maxBytesInFlightLo = (int)(std::max(bytesInFlight, bytesInFlightHistLoMem));
+
+        float alpha = std::max(queueDelayTrend, cautiousPacing);
+        maxBytesInFlight =
+            (maxBytesInFlightHi*(1.0f - alpha) + maxBytesInFlightLo*alpha)*
+            kMaxBytesInFlightHeadRoom;
+
+        if (enableSbd) {
+            /*
+            * Shared bottleneck detection,
+            */
+            float queueDelayNorm = queueDelay / queueDelayTargetMin;
+            queueDelayNormHist[queueDelayNormHistPtr] = queueDelayNorm;
+            queueDelayNormHistPtr = (queueDelayNormHistPtr + 1) % kQueueDelayNormHistSize;
+            /*
+            * Compute shared bottleneck detection and update queue delay target
+            * if queue dela variance is sufficienctly low
+            */
+            computeSbd();
+            /*
+            * This function avoids the adjustment of queueDelayTarget when
+            * congestion occurs (indicated by high queueDelaydSbdVar and queueDelaySbdSkew)
+            */
+            float oh = queueDelayTargetMin*(queueDelaySbdMeanSh + sqrt(queueDelaySbdVar));
+            if (lossEventRate > 0.002 && queueDelaySbdMeanSh > 0.5 && queueDelaySbdVar < 0.2) {
+                queueDelayTarget = std::min(kQueueDelayTargetMax, oh*1.5f);
+            }
+            else {
+                if (queueDelaySbdVar < 0.2 && queueDelaySbdSkew < 0.05) {
+                    queueDelayTarget = std::max(queueDelayTargetMin, std::min(kQueueDelayTargetMax, oh));
+                }
+                else {
+                    if (oh < queueDelayTarget)
+                        queueDelayTarget = std::max(queueDelayTargetMin, std::max(queueDelayTarget*0.99f, oh));
+                    else
+                        queueDelayTarget = std::max(queueDelayTargetMin, queueDelayTarget*0.999f);
+                }
+            }
+        }
+        lastAddToQueueDelayFractionHistT_us = time_us;
+    }
+    /*
+    * offTarget is a normalized deviation from the queue delay target
+    */
+    float offTarget = (queueDelayTarget - queueDelay) / float(queueDelayTarget);
+
+    if (lossEvent) {
+        /*
+        * loss event detected, decrease congestion window
+        */
+        cwnd = std::max(cwndMin, (int)(lossBeta*cwnd));
+        lossEvent = false;
+        lastCongestionDetectedT_us = time_us;
+
+        inFastStart = false;
+        wasLossEvent = true;
+    }
+    else if (ecnCeEvent) {
+        /*
+        * loss event detected, decrease congestion window
+        */
+        cwnd = std::max(cwndMin, (int)(ecnCeBeta*cwnd));
+        ecnCeEvent = false;
+        lastCongestionDetectedT_us = time_us;
+
+        inFastStart = false;
+        wasLossEvent = true;
+    }
+    else {
+
+        if (time_us - lastRttT_us > sRtt_us) {
+            if (wasLossEvent)
+                lossEventRate = 0.99f*lossEventRate + 0.01f;
+            else
+                lossEventRate *= 0.99f;
+            wasLossEvent = false;
+            lastRttT_us = time_us;
+        }
+
+        if (inFastStart) {
+            /*
+            * In fast start
+            */
+            if (queueDelayTrend < 0.2) {
+                /*
+                * CWND is increased by the number of ACKed bytes if
+                * window is used to 1/1.5 = 67%
+                * We need to relax the rule a bit for the case that
+                * feedback may be sparse due to limited RTCP report interval
+                * In addition we put a limit for the cases where feedback becomes
+                * piled up (sometimes happens with e.g LTE)
+                */
+                if (bytesInFlight*1.5 + bytesNewlyAcked > cwnd) {
+                    cwnd += bytesNewlyAckedLimited;
+                }
+            }
+            else {
+                inFastStart = false;
+            }
+        }
+        else {
+            if (offTarget > 0.0f) {
+                /*
+                * queue delay below target, increase CWND if window
+                * is used to 1/1.2 = 83%
+                */
+                if (bytesInFlight*1.2 + bytesNewlyAcked > cwnd) {
+                    float increment = gainUp * offTarget * bytesNewlyAckedLimited * mss / cwnd;
+                    cwnd += (int)(increment + 0.5f);
+                }
+            }
+            else {
+                /*
+                * Queue delay above target.
+                * Limit the CWND reduction to at most a quarter window
+                *  this avoids unduly large reductions for the cases
+                *  where data is queued up e.g because of retransmissions
+                *  on lower protocol layers.
+                */
+                float delta = -(gainDown * offTarget * bytesNewlyAcked * mss / cwnd);
+                delta = std::min((int)delta, cwnd / 4);
+                cwnd -= (int)(delta);
+
+                /*
+                * Especially when running over low bitrate bottlenecks, it is
+                *  beneficial to reduce the target bitrate a little, it limits
+                *  possible RTP queue delay spikes when congestion window is reduced
+                */
+                float rateTotal = 0.0f;
+                for (int n = 0; n < nStreams; n++)
+                    rateTotal += streams[n]->getMaxRate();
+                if (rateTotal < 1.0e5f) {
+                    delta = delta / cwnd;
+                    float rateAdjustFactor = (1.0f - delta);
+                    for (int n = 0; n < nStreams; n++) {
+                        Stream *tmp = streams[n];
+                        tmp->targetBitrate = std::max(tmp->minBitrate,
+                            std::min(tmp->maxBitrate,
+                            tmp->targetBitrate*rateAdjustFactor));
+                    }
+                }
+                lastCongestionDetectedT_us = time_us;
+
+            }
+        }
+    }
+    /*
+    * Congestion window validation, checks that the congestion window is
+    * not considerably higher than the actual number of bytes in flight
+    */
+    if (maxBytesInFlight > 5000) {
+        cwnd = std::min(cwnd, (int)maxBytesInFlight);
+    }
+
+    if (sRtt < 0.01f && queueDelayTrend < 0.1) {
+        int tmp = int(rateTransmitted*0.01f / 8);
+        tmp = std::max(tmp, (int)(maxBytesInFlight*1.5f));
+        cwnd = std::max(cwnd, tmp);
+    }
+    cwnd = std::max(cwndMin, cwnd);
+
+    /*
+    * Make possible to enter fast start if OWD has been low for a while
+    */
+    if (queueDelayTrend > 0.2) {
+        lastCongestionDetectedT_us = time_us;
+    }
+    else if (time_us - lastCongestionDetectedT_us > 5000000 &&
+        !inFastStart && kEnableConsecutiveFastStart) {
+        /*
+        * The queue delay trend has been low for more than 5.0s, resume fast start
+        */
+        inFastStart = true;
+        lastCongestionDetectedT_us = time_us;
+    }
+    bytesNewlyAcked = 0;
+}
+
+/*
+* Update base OWD (if needed) and return the
+* last estimated OWD (without offset compensation)
+*/
+uint32_t ScreamTx::estimateOwd(uint64_t time_us) {
+    baseOwd = std::min(baseOwd, ackedOwd);
+    if (time_us - lastBaseOwdAddT_us >= kBaseDelayUpdateInterval_us) {
+        baseOwdHist[baseOwdHistPtr] = baseOwd;
+        baseOwdHistPtr = (baseOwdHistPtr + 1) % kBaseOwdHistSize;
+        lastBaseOwdAddT_us = time_us;
+        baseOwd = UINT32_MAX;
+        baseOwdHistMin = UINT32_MAX;
+        for (int n = 0; n < kBaseOwdHistSize; n++)
+            baseOwdHistMin = std::min(baseOwdHistMin, baseOwdHist[n]);
+        /*
+        * _Very_ long periods of congestion can cause the base delay to increase
+        * with the effect that the queue delay is estimated wrong, therefore we seek to
+        * refresh the whole thing by deliberately allowing the network queue to drain
+        */
+        if (time_us - lastBaseDelayRefreshT_us > kBaseDelayUpdateInterval_us*(kBaseOwdHistSize - 1)) {
+            lastBaseDelayRefreshT_us = time_us;
+        }
+    }
+    return ackedOwd;
+}
+
+/*
+* Get the base one way delay
+*/
+uint32_t ScreamTx::getBaseOwd() {
+    return  std::min(baseOwd, baseOwdHistMin);
+}
+
+/*
+* Get the queue delay fraction
+*/
+float ScreamTx::getQueueDelayFraction() {
+    return queueDelay / queueDelayTarget;
+}
+
+/*
+* Compute congestion indicator
+*/
+void ScreamTx::computeQueueDelayTrend() {
+    queueDelayTrend = 0.0;
+    int ptr = queueDelayFractionHistPtr;
+    float avg = 0.0f, x1, x2, a0, a1;
+
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++) {
+        avg += queueDelayFractionHist[ptr];
+        ptr = (ptr + 1) % kQueueDelayFractionHistSize;
+    }
+    avg /= kQueueDelayFractionHistSize;
+
+    ptr = queueDelayFractionHistPtr;
+    x2 = 0.0f;
+    a0 = 0.0f;
+    a1 = 0.0f;
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++) {
+        x1 = queueDelayFractionHist[ptr] - avg;
+        a0 += x1 * x1;
+        a1 += x1 * x2;
+        x2 = x1;
+        ptr = (ptr + 1) % kQueueDelayFractionHistSize;
+    }
+    if (a0 > 0) {
+        queueDelayTrend = std::max(0.0f, std::min(1.0f, (a1 / a0)*queueDelayFractionAvg));
+    }
+}
+
+/*
+* Compute indicators of shared bottleneck
+*/
+void ScreamTx::computeSbd() {
+    float queueDelayNorm, tmp;
+    queueDelaySbdMean = 0.0;
+    queueDelaySbdMeanSh = 0.0;
+    queueDelaySbdVar = 0.0;
+    int ptr = queueDelayNormHistPtr;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++) {
+        queueDelayNorm = queueDelayNormHist[ptr];
+        queueDelaySbdMean += queueDelayNorm;
+        if (n >= kQueueDelayNormHistSize - kQueueDelayNormHistSizeSh) {
+            queueDelaySbdMeanSh += queueDelayNorm;
+        }
+        ptr = (ptr + 1) % kQueueDelayNormHistSize;
+    }
+    queueDelaySbdMean /= kQueueDelayNormHistSize;
+    queueDelaySbdMeanSh /= kQueueDelayNormHistSizeSh;
+
+    ptr = queueDelayNormHistPtr;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++) {
+        queueDelayNorm = queueDelayNormHist[ptr];
+        tmp = queueDelayNorm - queueDelaySbdMean;
+        queueDelaySbdVar += tmp * tmp;
+        queueDelaySbdSkew += tmp * tmp * tmp;
+        ptr = (ptr + 1) % kQueueDelayNormHistSize;
+    }
+    queueDelaySbdVar /= kQueueDelayNormHistSize;
+    queueDelaySbdSkew /= kQueueDelayNormHistSize;
+}
+
+/*
+* true if the queueDelayTarget is increased due to
+* detected competing flows
+*/
+bool ScreamTx::isCompetingFlows() {
+    return queueDelayTarget > queueDelayTargetMin;
+}
+
+/*
+* Get queue delay trend
+*/
+float ScreamTx::getQueueDelayTrend() {
+    return queueDelayTrend;
+}
+
+/*
+* Determine active streams
+*/
+void ScreamTx::determineActiveStreams(uint64_t time_us) {
+    float surplusBitrate = 0.0f;
+    float sumPrio = 0.0;
+    bool streamSetInactive = false;
+    for (int n = 0; n < nStreams; n++) {
+        if (time_us - streams[n]->lastFrameT_us > 1000000 && streams[n]->isActive) {
+            streams[n]->isActive = false;
+            surplusBitrate += streams[n]->targetBitrate;
+            streams[n]->targetBitrate = streams[n]->minBitrate;
+            streamSetInactive = true;
+        }
+        else {
+            sumPrio += streams[n]->targetPriority;
+        }
+    }
+    if (streamSetInactive) {
+        for (int n = 0; n < nStreams; n++) {
+            if (streams[n]->isActive) {
+                streams[n]->targetBitrate = std::min(streams[n]->maxBitrate,
+                    streams[n]->targetBitrate +
+                    surplusBitrate*streams[n]->targetPriority / sumPrio);
+            }
+        }
+    }
+}
+
+/*
+* Add credit to streams that was not served
+*/
+void ScreamTx::addCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) {
+    /*
+    * Add a credit to stream(s) that did not get priority to transmit RTP packets
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return;
+    int maxCredit = 10 * mss;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        if (tmp != servedStream) {
+            int credit = (int)(transmittedBytes*tmp->targetPriority * servedStream->targetPriorityInv);
+            if (tmp->rtpQueue->sizeOfQueue() > 0) {
+                tmp->credit += credit;
+            }
+            else {
+                tmp->credit += credit;
+                if (tmp->credit > maxCredit) {
+                    tmp->creditLost += tmp->credit - maxCredit;
+                    tmp->credit = maxCredit;
+                }
+                //tmp->credit = std::min(10 * mss, tmp->credit + credit);
+            }
+        }
+    }
+}
+
+/*
+* Subtract credit from served stream
+*/
+void ScreamTx::subtractCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) {
+    /*
+    * Subtract a credit equal to the number of transmitted bytes from the stream that
+    * transmitted a packet
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return;
+    servedStream->credit = std::max(0, servedStream->credit - transmittedBytes);
+}
+ScreamTx::Stream::Stream(ScreamTx *parent_,
+    RtpQueueIface *rtpQueue_,
+    uint32_t ssrc_,
+    float priority_,
+    float minBitrate_,
+    float startBitrate_,
+    float maxBitrate_,
+    float rampUpSpeed_,
+    float maxRtpQueueDelay_,
+    float txQueueSizeFactor_,
+    float queueDelayGuard_,
+    float lossEventRateScale_,
+    float ecnCeEventRateScale_) {
+    parent = parent_;
+    rtpQueue = rtpQueue_;
+    ssrc = ssrc_;
+    targetPriority = priority_;
+    targetPriorityInv = 1.0f / targetPriority;
+    minBitrate = minBitrate_;
+    maxBitrate = maxBitrate_;
+    targetBitrate = std::min(maxBitrate, std::max(minBitrate, startBitrate_));
+    rampUpSpeed = rampUpSpeed_;
+    maxRtpQueueDelay = maxRtpQueueDelay_;
+    txQueueSizeFactor = txQueueSizeFactor_;
+    queueDelayGuard = queueDelayGuard_;
+    lossEventRateScale = lossEventRateScale_;
+    ecnCeEventRateScale = ecnCeEventRateScale_;
+    targetBitrateHistUpdateT_us = 0;
+    targetBitrateI = 1.0f;
+    credit = 0;
+    creditLost = 0;
+    bytesTransmitted = 0;
+    bytesAcked = 0;
+    bytesLost = 0;
+    hiSeqAck = 0;
+    hiSeqTx = 0;
+    rateTransmitted = 0.0f;
+    rateAcked = 0.0f;
+    rateLost = 0.0f;
+    lossEventFlag = false;
+    ecnCeEventFlag = false;
+    txSizeBitsAvg = 0.0f;
+    lastRateUpdateT_us = 0;
+    lastBitrateAdjustT_us = 0;
+    lastTargetBitrateIUpdateT_us = 0;
+    bytesRtp = 0;
+    rateRtp = 0.0f;
+    lastLossDetectIx = -1;
+    ecnCeMarkedBytes = 0;
+    timeTxAck_us = 0;
+
+    for (int n = 0; n < kRateUpDateSize; n++) {
+        rateRtpHist[n] = 0.0f;
+        rateAckedHist[n] = 0.0f;
+        rateLostHist[n] = 0.0f;
+        rateTransmittedHist[n] = 0.0f;
+    }
+    rateUpdateHistPtr = 0;
+    for (int n = 0; n < kTargetBitrateHistSize; n++) {
+        targetBitrateHist[n] = 0;
+    }
+    targetBitrateHistPtr = 0;
+    targetRateScale = 1.0;
+    isActive = false;
+    lastFrameT_us = 0;
+    initTime_us = 0;
+    rtpQueueDiscard = false;
+    lastRtpQueueDiscardT_us = 0;
+    rateLost = 0.0;
+    bytesLost = 0;
+    wasRepairLoss = false;
+    repairLoss = false;
+    for (int n = 0; n < kMaxTxPackets; n++)
+        txPackets[n].isUsed = false;
+    txPacketsPtr = 0;
+}
+
+/*
+* Update the estimated max media rate
+*/
+void ScreamTx::Stream::updateRate(uint64_t time_us) {
+    if (lastRateUpdateT_us != 0) {
+        float tDelta = (time_us - lastRateUpdateT_us) * 1e-6f;
+
+        rateTransmittedHist[rateUpdateHistPtr] = bytesTransmitted*8.0f / tDelta;
+        rateAckedHist[rateUpdateHistPtr] = bytesAcked*8.0f / tDelta;
+        rateLostHist[rateUpdateHistPtr] = bytesLost*8.0f / tDelta;
+        rateRtpHist[rateUpdateHistPtr] = bytesRtp * 8.0f / tDelta;
+        rateUpdateHistPtr = (rateUpdateHistPtr + 1) % kRateUpDateSize;
+        rateTransmitted = 0.0f;
+        rateAcked = 0.0f;
+        rateLost = 0.0f;
+        rateRtp = 0.0f;
+        for (int n = 0; n < kRateUpDateSize; n++) {
+            rateTransmitted += rateTransmittedHist[n];
+            rateAcked += rateAckedHist[n];
+            rateLost += rateLostHist[n];
+            rateRtp += rateRtpHist[n];
+        }
+        rateTransmitted /= kRateUpDateSize;
+        rateAcked /= kRateUpDateSize;
+        rateLost /= kRateUpDateSize;
+        rateRtp /= kRateUpDateSize;
+        if (rateRtp > 0) {
+            /*
+            * Video coders are strange animals.. In certain cases the average bitrate is
+            * consistently lower or higher than the target bitare. This additonal scaling compensates
+            * for this anomaly.
+            */
+            const float alpha = 0.05f;
+            targetRateScale *= (1.0f - alpha);
+            targetRateScale += alpha*targetBitrate / rateRtp;
+            targetRateScale = std::min(1.25f, std::max(0.8f, targetRateScale));
+        }
+    }
+
+    bytesTransmitted = 0;
+    bytesAcked = 0;
+    bytesRtp = 0;
+    bytesLost = 0;
+    lastRateUpdateT_us = time_us;
+}
+
+/*
+* Get the estimated maximum media rate
+*/
+float ScreamTx::Stream::getMaxRate() {
+    return std::max(rateTransmitted, rateAcked);
+}
+
+/*
+* The the stream that matches SSRC
+*/
+ScreamTx::Stream* ScreamTx::getStream(uint32_t ssrc) {
+    for (int n = 0; n < nStreams; n++) {
+        if (streams[n]->isMatch(ssrc)) {
+            return streams[n];
+        }
+    }
+    return NULL;
+}
+
+/*
+* Get the target bitrate.
+* This function returns a value -1 if loss of RTP packets is detected,
+*  either because of loss in network or RTP queue discard
+*/
+float ScreamTx::Stream::getTargetBitrate() {
+
+    bool requestRefresh = isRtpQueueDiscard() || repairLoss;
+    repairLoss = false;
+    if (requestRefresh  && !wasRepairLoss) {
+        wasRepairLoss = true;
+        return -1.0;
+    }
+    float rate = targetRateScale*targetBitrate;
+    /*
+    * Video coders are strange animals.. In certain cases a very frequent rate requests can confuse the
+    * rate control logic in the coder
+    */
+    wasRepairLoss = false;
+    return rate;
+}
+
+/*
+* A small history of past max bitrates is maintained and the max value is picked.
+* This solves a problem where consequtive rate decreases can give too low
+*  targetBitrateI values.
+*/
+void ScreamTx::Stream::updateTargetBitrateI(float br) {
+    targetBitrateHist[targetBitrateHistPtr] = std::min(br, targetBitrate);
+    targetBitrateHistPtr = (targetBitrateHistPtr + 1) % kTargetBitrateHistSize;
+    targetBitrateI = std::min(br, targetBitrate);
+    for (int n = 0; n < kTargetBitrateHistSize; n++) {
+        targetBitrateI = std::max(targetBitrateI, targetBitrateHist[n]);
+    }
+
+}
+
+/*
+* Update the target bitrate, the target bitrate includes the RTP overhead
+*/
+void ScreamTx::Stream::updateTargetBitrate(uint64_t time_us) {
+    /*
+    * Compute a maximum bitrate, this bitrates includes the RTP overhead
+    */
+    float br = getMaxRate();
+    float rateRtpLimit = br;
+    if (initTime_us == 0) {
+        /*
+        * Initialize if the first time
+        */
+        initTime_us = time_us;
+        lastRtpQueueDiscardT_us = time_us;
+    }
+
+    if (lastBitrateAdjustT_us == 0) lastBitrateAdjustT_us = time_us;
+    isActive = true;
+    lastFrameT_us = time_us;
+
+    if (lossEventFlag || ecnCeEventFlag) {
+        /*
+        * Loss event handling
+        * Rate is reduced slightly to avoid that more frames than necessary
+        * queue up in the sender queue
+        */
+        if (time_us - lastTargetBitrateIUpdateT_us > 2000000) {
+            /*
+            * The timing constraint avoids that targetBitrateI
+            *  is set too low in cases where a congestion event is prolonged.
+            * An accurate targetBitrateI is not of extreme importance
+            *  but helps to avoid jitter spikes when SCReAM operates
+            *  over fixed bandwidth or slowly varying links.
+            */
+            updateTargetBitrateI(br);
+            lastTargetBitrateIUpdateT_us = time_us;
+        }
+        if (lossEventFlag)
+            targetBitrate = std::max(minBitrate, targetBitrate*lossEventRateScale);
+        else if (ecnCeEventFlag)
+            targetBitrate = std::max(minBitrate, targetBitrate*ecnCeEventRateScale);
+
+        lossEventFlag = false;
+        ecnCeEventFlag = false;
+        lastBitrateAdjustT_us = time_us;
+    }
+    else {
+        if (time_us - lastBitrateAdjustT_us < kRateAdjustInterval_us)
+            return;
+        /*
+        * A scale factor that is dependent on the inflection point
+        * i.e the last known highest video bitrate
+        */
+        float sclI = (targetBitrate - targetBitrateI) / targetBitrateI;
+        sclI *= 4;
+        sclI = std::max(0.2f, std::min(1.0f, sclI*sclI));
+        float increment = 0.0f;
+
+        /*
+        * Size of RTP queue [bits]
+        * As this function is called immediately after a
+        * video frame is produced, we need to accept the new
+        * RTP packets in the queue, we subtract a number of bytes correspoding to the size
+        * of the last frame (including RTP overhead), this is simply the aggregated size
+        * of the RTP packets with the highest RTP timestamp
+        */
+        int lastBytes = rtpQueue->getSizeOfLastFrame();
+        int txSizeBits = std::max(0, rtpQueue->bytesInQueue() - lastBytes) * 8;
+
+        float alpha = 0.5f;
+
+        txSizeBitsAvg = txSizeBitsAvg*alpha + txSizeBits*(1.0f - alpha);
+        /*
+        * tmp is a local scaling factor that makes rate adaptation sligthly more
+        * aggressive when competing flows (e.g file transfers) are detected
+        */
+        float rampUpSpeedTmp = std::min(rampUpSpeed, targetBitrate*0.5f);
+        if (parent->isCompetingFlows()) {
+            rampUpSpeedTmp *= 2.0f;
+        }
+
+        float rtpQueueDelay = rtpQueue->getDelay(time_us * 1e-6f);
+        if (rtpQueueDelay > maxRtpQueueDelay &&
+            (time_us - lastRtpQueueDiscardT_us > kMinRtpQueueDiscardInterval_us)) {
+            /*
+            * RTP queue is cleared as it is becoming too large,
+            * Function is however disabled initially as there is no reliable estimate of the
+            * throughput in the initial phase.
+            */
+            rtpQueue->clear();
+
+            rtpQueueDiscard = true;
+            //parent->bytesInFlight = 0;
+
+            lastRtpQueueDiscardT_us = time_us;
+            targetRateScale = 1.0;
+            txSizeBitsAvg = 0.0f;
+        }
+        else if (parent->inFastStart && rtpQueueDelay < 0.1f) {
+            /*
+            * Increment bitrate, limited by the rampUpSpeed
+            */
+            increment = rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6f);
+            /*
+            * Limit increase rate near the last known highest bitrate or if priority is low
+            */
+            increment *= sclI*sqrt(targetPriority);
+            /*
+            * No increase if the actual coder rate is lower than the target
+            */
+            if (targetBitrate > rateRtpLimit*1.5f)
+                increment = 0;
+            /*
+            * Add increment
+            */
+            targetBitrate += increment;
+            wasFastStart = true;
+        }
+        else {
+            if (wasFastStart) {
+                wasFastStart = false;
+                if (time_us - lastTargetBitrateIUpdateT_us > 2000000) {
+                    /*
+                    * The timing constraint avoids that targetBitrateI
+                    * is set too low in cases where a
+                    * congestion event is prolonged
+                    */
+                    updateTargetBitrateI(br);
+                    lastTargetBitrateIUpdateT_us = time_us;
+                }
+            }
+            /*
+            * scl is based on the queue delay trend
+            */
+            float scl = queueDelayGuard*parent->getQueueDelayTrend();
+            if (parent->isCompetingFlows())
+                scl *= 0.05f;
+
+            /*
+            * Update target rate
+            * At very low bitrates it is necessary to actively try to push the
+            *  the bitrate up some extra
+            */
+            float incrementScale = 1.0f + 0.05f*std::min(1.0f, 50000.0f / targetBitrate);
+
+            float increment = incrementScale*br*(1.0f - scl) -
+                txQueueSizeFactor*txSizeBitsAvg - targetBitrate;
+            if (txSizeBits > 12000 && increment > 0)
+                increment = 0;
+
+            if (increment > 0) {
+                wasFastStart = true;
+                if (!parent->isCompetingFlows()) {
+                    /*
+                    * Limit the bitrate increase so that it does not go faster than rampUpSpeedTmp
+                    * This limitation is not in effect if competing flows are detected
+                    */
+                    increment *= sclI;
+                    increment = std::min(increment, (float)(rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6)));
+                }
+                if (targetBitrate > rateRtpLimit*1.5f)
+                    increment = 0;
+            }
+            else {
+                /*
+                * Avoid that the target bitrate is reduced if it actually is the media
+                * coder that limits the output rate e.g due to inactivity
+                */
+                if (rateRtp < targetBitrate*0.8f)
+                    increment = 0.0f;
+                /*
+                * Also avoid that the target bitrate is reduced if
+                * the coder bitrate is higher
+                * than the target.
+                * The possible reason is that a large I frame is transmitted, another reason is
+                * complex dynamic content.
+                */
+                if (rateRtp > targetBitrate*2.0f)
+                    increment = 0.0f;
+            }
+            targetBitrate += increment;
+        }
+        lastBitrateAdjustT_us = time_us;
+    }
+
+    targetBitrate = std::min(maxBitrate, std::max(minBitrate, targetBitrate));
+}
+
+bool ScreamTx::Stream::isRtpQueueDiscard() {
+    bool tmp = rtpQueueDiscard;
+    rtpQueueDiscard = false;
+    return tmp;
+}
+
+/*
+* Adjust (enforce) proper prioritization between active streams
+* at regular intervals. This is a necessary addon to mitigate
+* issues that VBR media brings
+* The function consists of equal measures or rational thinking and
+* black magic, which means that there is no 100% guarantee that
+* will always work.
+*/
+void ScreamTx::adjustPriorities(uint64_t time_us) {
+    if (nStreams == 1 || time_us - lastAdjustPrioritiesT_us < 1000000) {
+        /*
+        * Skip if only one stream or if adjustment done less than 5s ago
+        */
+        return;
+    }
+
+    if (queueDelayTrend > 0.02) {
+        /*
+        * Adjust only if there is some evidence of congestion
+        */
+        int avgCreditLost = 0;
+        int avgCreditLostN = 0;
+        for (int n = 0; n < nStreams; n++) {
+            avgCreditLost += streams[n]->creditLost;
+            if (streams[n]->isActive)
+                avgCreditLostN++;
+        }
+        if (avgCreditLostN <= 1) {
+            /*
+            * At the most 1 steam active, skip adjustment
+            */
+            return;
+        }
+
+        avgCreditLost /= avgCreditLostN;
+        for (int n = 0; n < nStreams; n++) {
+            if (true && streams[n]->isActive) {
+                if (streams[n]->creditLost < avgCreditLost &&
+                    streams[n]->targetBitrate > streams[n]->rateRtp) {
+                    /*
+                    * Stream is using more of its share than the average
+                    * bitrate is likelky too high, reduce target bitrate
+                    * This algorithm works best when we want to ensure
+                    * different priorities
+                    */
+                    streams[n]->targetBitrate = std::max(streams[n]->minBitrate, streams[n]->targetBitrate*0.9f);
+                }
+            }
+        }
+
+        for (int n = 0; n < nStreams; n++)
+            streams[n]->creditLost = 0;
+
+
+        lastAdjustPrioritiesT_us = time_us;
+
+    }
+    if (time_us - lastAdjustPrioritiesT_us < 20000000) {
+        /*
+        * Clear old statistics of unused credits
+        */
+        for (int n = 0; n < nStreams; n++)
+            streams[n]->creditLost = 0;
+
+
+        lastAdjustPrioritiesT_us = time_us;
+    }
+}
+
+/*
+* Get the prioritized stream
+*/
+ScreamTx::Stream* ScreamTx::getPrioritizedStream(uint64_t time_us) {
+    /*
+    * Function that prioritizes between streams, this function may need
+    * to be modified to handle the prioritization better for e.g
+    * FEC, SVC etc.
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return streams[0];
+
+    int maxCredit = 1;
+    Stream *stream = NULL;
+    /*
+    * Pick a stream with credit higher or equal to
+    * the size of the next RTP packet in queue for the given stream.
+    */
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        if (tmp->rtpQueue->sizeOfQueue() == 0) {
+            /*
+            * Queue empty
+            */
+        }
+        else {
+            /*
+            * Pick stream if it has the highest credit so far
+            */
+            if (tmp->credit >= std::max(maxCredit, tmp->rtpQueue->sizeOfNextRtp())) {
+                stream = tmp;
+                maxCredit = tmp->credit;
+            }
+        }
+    }
+    if (stream != NULL) {
+        return stream;
+    }
+    /*
+    * If the above doesn't give a candidate..
+    * Pick the stream with the highest priority that also
+    * has at least one RTP packet in queue.
+    */
+    float maxPrio = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        float priority = tmp->targetPriority;
+        if (tmp->rtpQueue->sizeOfQueue() > 0 && priority > maxPrio) {
+            maxPrio = priority;
+            stream = tmp;
+        }
+    }
+    return stream;
+}
diff --git a/Laptop/scream/scream_receiver/code/ScreamTx.h b/Laptop/scream/scream_receiver/code/ScreamTx.h
new file mode 100644
index 0000000000000000000000000000000000000000..786f465300539fdbdacf91729e67380fc179f612
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/ScreamTx.h
@@ -0,0 +1,618 @@
+#ifndef SCREAM_TX
+#define SCREAM_TX
+
+#include <string.h>
+#include <iostream>
+#include <cstdint>
+using namespace std;
+
+/*
+* This module implements the sender side of SCReAM,
+*  see https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf
+*  for details on how it is integrated in audio/video platforms
+* A full implementation needs the additional code for
+*  + RTCP feedback (e.g using RFC3611 XR elements)
+*  + RTP queue(s), one queue per stream, see SCReAM description for interface description
+*  + Other obvious stuff such as RTP payload packetizer, video+audio capture, coders....
+*
+*/
+
+// ==== Default parameters (if tuning necessary) ====
+// Connection related default parameters
+// CWND scale factor upon loss event
+static const float kLossBeta = 0.8f;
+// CWND scale factor upon ECN-CE event
+static const float kEcnCeBeta = 0.9f;
+// Min and max queue delay target
+static const float kQueueDelayTargetMin = 0.1f; //ms
+// Enable shared botleneck detection and queue delay target adjustement
+// good if SCReAM needs to compete with e.g FTP but
+// Can in some cases cause self-inflicted congestion
+//  i.e the e2e delay can become large even though
+//  there is no competing traffic present
+//  For some reason, self-inflicted congestion is easily triggered
+//  when an audio + video stream is run, so bottomline is that
+//  this feature is a bit shaky
+static const bool kEnableSbd = false;
+// CWND up and down gain factors
+static const float kGainUp = 1.0f;
+static const float kGainDown = 2.0f;
+
+// Stream related default parameters
+// Max video rampup speed in bps/s (bits per second increase per second)
+static const float kRampUpSpeed = 200000.0f; // bps/s
+// Max RTP queue delay, RTP queue is cleared if this value is exceeded
+static const float kMaxRtpQueueDelay = 0.1;  // 0.1s
+// Compensation factor for RTP queue size
+// A higher value such as 0.2 gives less jitter esp. in wireless (LTE)
+// but potentially also lower link utilization
+static const float kTxQueueSizeFactor = 0.2f;
+// Compensation factor for detected congestion in rate computation
+// A higher value such as 0.5 gives less jitter esp. in wireless (LTE)
+// but potentially also lower link utilization
+static const float kQueueDelayGuard = 0.1f;
+// Video rate scaling due to loss events
+static const float kLossEventRateScale = 0.9f;
+// Video rate scaling due to ECN marking events
+static const float kEcnCeEventRateScale = 0.95f;
+
+
+
+// Constants
+/*
+* Timestamp sampling rate for SCReAM feedback
+*/
+static const float kTimestampRate = 1000.0f;
+/*
+* Max number of RTP packets in flight
+* With and MSS = 1200 byte and an RTT = 200ms
+* this is enount to support media bitrates of ~50Mbps
+* Note, 65536 % kMaxTxPackets must be zero
+*/
+static const int kMaxTxPackets = 2048;
+/*
+* Max number of streams
+*/
+static const int kMaxStreams = 10;
+/*
+* History vectors
+*/
+static const int kBaseOwdHistSize = 50;
+static const int kQueueDelayNormHistSize = 200;
+static const int kQueueDelayNormHistSizeSh = 50;
+static const int kQueueDelayFractionHistSize = 20;
+static const int kBytesInFlightHistSizeMax = 60;
+static const int kRateUpDateSize = 4;
+static const int kTargetBitrateHistSize = 3;
+static const int kLossRateHistSize = 10;
+
+class RtpQueueIface;
+class ScreamTx {
+public:
+    /*
+    * Constructor, see constant definitions above for an explanation of parameters
+    * cwnd > 0 sets a different initial congestion window, for example it can be set to
+    *  initialrate/8*rtt
+    * cautiousPacing is set in the range [0.0..1.0]. A higher values restricts the transmission rate of large key frames
+    *  which can be beneficial if it is evident that large key frames cause packet drops, for instance due to
+    *  reduced buffer size in wireless modems.
+    *  This is however at the potential cost of an overall increased transmission delay also when links are uncongested
+    *  as the RTP packets are more likely to be buffered up on the sender side when cautiousPacing is set close to 1.0.
+    * lossBeta == 1.0 means that packet losses are ignored by the congestion control
+    */
+    ScreamTx(float lossBeta = kLossBeta,
+        float ecnCeBeta = kEcnCeBeta,
+        float queueDelayTargetMin = kQueueDelayTargetMin,
+        bool enableSbd = kEnableSbd,
+        float gainUp = kGainUp,
+        float gainDown = kGainDown,
+        int cwnd = 0,  // An initial cwnd larger than 2*mss
+        float cautiousPacing = 0.0f,
+        int bytesInFlightHistSize = 5,
+        bool openWindow = false);
+
+    ~ScreamTx();
+
+    /*
+    * Register a new stream {SSRC,PT} tuple,
+    *  with a priority value in the range ]0.0..1.0]
+    *  where 1.0 denotes the highest priority.
+    * It is recommended that at least one stream has prioritity 1.0.
+    * Bitrates are specified in bps
+    * See constant definitions above for an explanation of other default parameters
+    */
+    void registerNewStream(RtpQueueIface *rtpQueue,
+        uint32_t ssrc,
+        float priority,     // priority in range ]0.0 .. 1.0], 1.0 is highest
+        float minBitrate,   // Min target bitrate
+        float startBitrate, // Starting bitrate
+        float maxBitrate,   // Max target bitrate
+        float rampUpSpeed = kRampUpSpeed,
+        float maxRtpQueueDelay = kMaxRtpQueueDelay,
+        float txQueueSizeFactor = kTxQueueSizeFactor,
+        float queueDelayGuard = kQueueDelayGuard,
+        float lossEventRateScale = kLossEventRateScale,
+        float ecnCeEventRateScale = kEcnCeEventRateScale);
+
+    /*
+     * Updates the min and max bitrates for an existing stream
+     */
+    void updateBitrateStream(uint32_t ssrc,
+        float minBitrate,
+        float maxBitrate);
+
+    /*
+     * Access the configured RtpQueue of an existing stream
+     */
+    RtpQueueIface * getStreamQueue(uint32_t ssrc);
+
+    /*
+    * Call this function for each new video frame
+    *  Note : isOkToTransmit should be called after newMediaFrame
+    */
+    void newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp);
+
+    /*
+    * Function determines if an RTP packet with SSRC can be transmitted
+    * Return values :
+    * 0.0  : RTP packet with SSRC can be immediately transmitted
+    *  addTransmitted must be called if packet is transmitted as a result of this
+    * >0.0 : Time [s] until this function should be called again
+    *   This can be used to start a timer
+    *   Note that a call to newMediaFrame or incomingFeedback should
+    *    cause an immediate call to isOkToTransmit
+    * -1.0 : No RTP packet available to transmit or send window is not large enough
+    */
+    float isOkToTransmit(uint64_t time_us, uint32_t &ssrc);
+
+    /*
+    * Add packet to list of transmitted packets
+    * should be called when an RTP packet transmitted
+    * Return time until isOkToTransmit can be called again
+    */
+    float addTransmitted(uint64_t timestamp_us, // Wall clock ts when packet is transmitted
+        uint32_t ssrc,
+        int size,
+        uint16_t seqNr);
+
+    /*
+    * New incoming feedback, this function
+    * triggers a CWND update
+    * The SCReAM timestamp is in jiffies, where the frequency is controlled
+    * by the timestamp clock frequency (default 1000Hz)
+    * The ackVector indicates recption of the 64 RTP SN prior to highestSeqNr
+    *  Note : isOkToTransmit should be called after incomingFeedback
+    * ecnCeMarkedBytes indicates the cumulative number of bytes that are ECN-CE marked
+    */
+    void incomingFeedback(uint64_t time_us,
+        uint32_t ssrc,         // SSRC of stream
+        uint32_t timestamp,    // SCReAM FB timestamp [jiffy]
+        uint16_t highestSeqNr, // Highest ACKed RTP sequence number
+        uint64_t ackVector,   // ACK vector
+        uint16_t ecnCeMarkedBytes = 0); // Number of ECN marked bytes
+
+    /*
+    * Parse feedback according to the format below. It is up to the
+    * wrapper application this RTCP from a compound RTCP if needed
+    * BT = 255, means that this is experimental use
+    *
+    * 0                   1                   2                   3
+    * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |V=2|P|reserved |   PT=XR=207   |           length=6            |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                              SSRC                             |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |     BT=255    |    reserved   |         block length=4        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                        SSRC of source                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b0-31)                        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b32-63)                       |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                    Timestamp (32bits)                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    */
+    void incomingFeedback(uint64_t time_us,
+        unsigned char* buf,
+        int size);
+
+    /*
+    * Get the target bitrate for stream with SSRC
+    * NOTE!, Because SCReAM operates on RTP packets, the target bitrate will
+    *  also include the RTP overhead. This means that a subsequent call to set the
+    *  media coder target bitrate must subtract an estimate of the RTP + framing
+    *  overhead. This is not critical for Video bitrates but can be important
+    *  when SCReAM is used to congestion control e.g low bitrate audio streams
+    * Function returns -1 if a loss is detected, this signal can be used to
+    *  request a new key frame from a video encoder
+    */
+    float getTargetBitrate(uint32_t ssrc);
+
+    /*
+    * Set target priority for a given stream, priority value should be in range ]0.0..1.0]
+    */
+    void setTargetPriority(uint32_t ssrc, float aPriority);
+
+    /*
+    * Get verbose log information
+    */
+    void getLog(float time, char *s);
+
+    /*
+    * Get verbose log information
+    */
+    void getShortLog(float time, char *s);
+
+    /*
+    * Get overall simplified statistics
+    */
+    void getStatistics(float time, char *s);
+
+
+private:
+    /*
+    * Struct for list of RTP packets in flight
+    */
+    struct Transmitted {
+        uint64_t timeTx_us;
+        uint32_t timestamp;
+        int size;
+        uint16_t seqNr;
+        bool isUsed;
+        bool isAcked;
+        bool isAfterReceivedEdge;
+
+    };
+
+    /*
+      * Statistics for the network congestion control and the
+      *  stream[0]
+      */
+    class Statistics {
+    public:
+        Statistics();
+        void getSummary(float time, char s[]);
+        void add(float rateTx, float rateLost, float rtt, float queueDelay);
+    private:
+        float lossRateHist[kLossRateHistSize];
+        float rateLostAcc;
+        int rateLostN;
+        int lossRateHistPtr;
+        float avgRateTx;
+        float avgRtt;
+        float avgQueueDelay;
+        float sumRateTx;
+        float sumRateLost;
+
+    };
+
+
+    /*
+    * One instance is created for each {SSRC,PT} tuple
+    */
+    class Stream {
+    public:
+        Stream(ScreamTx *parent,
+            RtpQueueIface *rtpQueue,
+            uint32_t ssrc,
+            float priority,
+            float minBitrate,
+            float startBitrate,
+            float maxBitrate,
+            float rampUpSpeed,
+            float maxRtpQueueDelay,
+            float txQueueSizeFactor,
+            float queueDelayGuard,
+            float lossEventRateScale,
+            float ecnCeEventRateScale);
+
+        float getMaxRate();
+
+        float getTargetBitrate();
+
+        void updateRate(uint64_t time_us);
+
+        void updateTargetBitrateI(float br);
+
+        void updateTargetBitrate(uint64_t time_us);
+
+        bool isRtpQueueDiscard();
+
+        bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; };
+        ScreamTx *parent;
+        RtpQueueIface *rtpQueue;      // RTP Packet queue
+        uint32_t ssrc;            // SSRC of stream
+        float rampUpSpeed;
+        float maxRtpQueueDelay;
+        float txQueueSizeFactor;
+        float queueDelayGuard;
+        float lossEventRateScale;
+        float ecnCeEventRateScale;
+
+        int credit;             // Credit that is received if another stream gets
+        //  priority to transmit
+        int creditLost;         // Amount of lost (unused) credit, input to
+        //  adjustPriorities function
+        float targetPriority;   // Stream target priority
+        float targetPriorityInv;// Stream target priority inverted
+        int bytesTransmitted;   // Number of bytes transmitted
+        int bytesAcked;         // Number of ACKed bytes
+        int bytesLost;          // Number of lost bytes
+        float rateTransmitted;  // Transmitted rate
+        float rateAcked;        // ACKed rate
+        float rateLost;         // Lost packets (bit)rate
+        uint16_t hiSeqAck;      // Highest sequence number ACKed
+        uint16_t hiSeqTx;       // Highest sequence number transmitted
+        float minBitrate;       // Min bitrate
+        float maxBitrate;       // Max bitrate
+        float targetBitrate;    // Target bitrate
+        float targetBitrateI;   // Target bitrate inflection point
+        bool wasFastStart;      // Was fast start
+        bool lossEventFlag;     // Was loss event
+        bool ecnCeEventFlag;    // Was ECN mark event
+        float txSizeBitsAvg;    // Avergage nymber of bits in RTP queue
+        uint64_t lastBitrateAdjustT_us; // Last time rate was updated for this stream
+        uint64_t lastRateUpdateT_us;    // Last time rate estimate was updated
+        uint64_t lastTargetBitrateIUpdateT_us;    // Last time rate estimate was updated
+
+        uint64_t timeTxAck_us;  // timestamp when higest ACKed SN was transmitted
+
+        int bytesRtp;           // Number of RTP bytes from media coder
+        float rateRtp;          // Media bitrate
+        float rateRtpHist[kRateUpDateSize];
+        float rateAckedHist[kRateUpDateSize];
+        float rateLostHist[kRateUpDateSize];
+        float rateTransmittedHist[kRateUpDateSize];
+        int rateUpdateHistPtr;
+        float targetBitrateHist[kTargetBitrateHistSize];
+        int targetBitrateHistPtr;
+        uint64_t targetBitrateHistUpdateT_us;
+        float targetRateScale;
+
+        bool isActive;
+        uint64_t lastFrameT_us;
+        uint64_t initTime_us;
+        bool rtpQueueDiscard;
+        uint64_t lastRtpQueueDiscardT_us;
+        bool wasRepairLoss;
+        bool repairLoss;
+        int lastLossDetectIx;
+        uint16_t ecnCeMarkedBytes;
+
+
+        Transmitted txPackets[kMaxTxPackets];
+        int txPacketsPtr;
+
+    };
+
+    /*
+    * Initialize values
+    */
+    void initialize(uint64_t time_us);
+
+    /*
+    * Mark ACKed RTP packets
+    */
+    void markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream);
+
+    /*
+    * Update CWND
+    */
+    void updateCwnd(uint64_t time_us);
+
+    /*
+    * Detect lost RTP packets
+    */
+    void detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream);
+
+    /*
+    * Call this function at regular intervals to determine active streams
+    */
+    void determineActiveStreams(uint64_t time_us);
+
+    /*
+    * Compute 1st order prediction coefficient of queue delay multiplied by the queue delay fraction
+    * A value [0.0..1.0] indicates if queue delay is increasing
+    * This gives a rough estimate of how the queuing delay delay evolves
+    */
+    void computeQueueDelayTrend();
+
+    /*
+    * Estimate one way delay [jiffy] and updated base delay
+    * Base delay is not subtracted
+    */
+    uint32_t estimateOwd(uint64_t time_us);
+
+    /*
+    * return base delay [jiffy]
+    */
+    uint32_t getBaseOwd();
+
+    /*
+    * Compute indicators of shared bottleneck
+    */
+    void computeSbd();
+
+    /*
+    * True if competing (TCP)flows detected
+    */
+    bool isCompetingFlows();
+
+    /*
+    * Get stream with corresponding SSRC
+    */
+    Stream* getStream(uint32_t ssrc);
+
+    /*
+    * Get matching stream index for this SSRC tuple,
+    *  return -1 if no match
+    */
+    int getStreamIndex(uint32_t ssrc);
+
+    /*
+    * Adjust stream bitrates to reflect priorities
+    */
+    void adjustPriorities(uint64_t time_us);
+
+    /*
+    * Get the prioritized stream
+    *  Return NULL if no stream with
+    *  with RTP packets
+    */
+    Stream* getPrioritizedStream(uint64_t time_us);
+
+    /*
+    * Add credit to unserved streams
+    */
+    void addCredit(uint64_t time_us,
+        Stream* servedStream,
+        int transmittedBytes);
+
+    /*
+    * Subtract used credit
+    */
+    void subtractCredit(uint64_t time_us,
+        Stream* servedStream,
+        int transmittedBytes);
+
+    /*
+    * return 1 if in fast start
+    */
+    int isInFastStart() { return inFastStart ? 1 : 0; };
+
+    /*
+    * Get the fraction between queue delay and the queue delay target
+    */
+    float getQueueDelayFraction();
+
+    /*
+    * Get the queuing delay trend
+    */
+    float getQueueDelayTrend();
+
+    /*
+    * Variables for network congestion control
+    */
+
+    /*
+    * Related to computation of queue delay and target queuing delay
+    */
+    float lossBeta;
+    float ecnCeBeta;
+    float queueDelayTargetMin;
+    bool enableSbd;
+    float gainUp;
+    float gainDown;
+    float cautiousPacing;
+
+    uint64_t sRttSh_us;
+    uint64_t sRtt_us;
+    float sRtt;
+    uint32_t ackedOwd;
+    uint32_t baseOwd;
+
+    uint32_t baseOwdHist[kBaseOwdHistSize];
+    int baseOwdHistPtr;
+    uint32_t baseOwdHistMin;
+    float queueDelay;
+    float queueDelayFractionAvg;
+    float queueDelayFractionHist[kQueueDelayFractionHistSize];
+    int queueDelayFractionHistPtr;
+    float queueDelayTrend;
+    float queueDelayTarget;
+    float queueDelayNormHist[kQueueDelayNormHistSize];
+    int queueDelayNormHistPtr;
+    float queueDelaySbdVar;
+    float queueDelaySbdMean;
+    float queueDelaySbdSkew;
+    float queueDelaySbdMeanSh;
+    float queueDelayMax;
+
+    /*
+    * CWND management
+    */
+    int bytesNewlyAcked;
+    int mss; // Maximum Segment Size
+    int cwnd; // congestion window
+    int cwndMin;
+    bool openWindow;
+    int bytesInFlight;
+    int bytesInFlightHistLo[kBytesInFlightHistSizeMax];
+    int bytesInFlightHistHi[kBytesInFlightHistSizeMax];
+    int bytesInFlightHistSize;
+    int bytesInFlightHistPtr;
+    int bytesInFlightMaxLo;
+    int bytesInFlightHistLoMem;
+    int bytesInFlightMaxHi;
+    int bytesInFlightHistHiMem;
+    float maxBytesInFlight;
+    int accBytesInFlightMax;
+    int nAccBytesInFlightMax;
+    float rateTransmitted;
+    float rateAcked;
+    float queueDelayTrendMem;
+    float maxRate;
+    uint64_t lastCwndUpdateT_us;
+
+    /*
+    * Loss event
+    */
+    bool lossEvent;
+    bool wasLossEvent;
+    float lossEventRate;
+
+    /*
+    * ECN-CE
+    */
+    bool ecnCeEvent;
+
+    /*
+    * Fast start
+    */
+    bool inFastStart;
+
+    /*
+    * Transmission scheduling
+    */
+    uint64_t paceInterval_us;
+    float paceInterval;
+    float rateTransmittedAvg;
+
+    /*
+    * Update control variables
+    */
+    bool isInitialized;
+    uint64_t lastSRttUpdateT_us;
+    uint64_t lastBaseOwdAddT_us;
+    uint64_t baseOwdResetT_us;
+    uint64_t lastAddToQueueDelayFractionHistT_us;
+    uint64_t lastBytesInFlightT_us;
+    uint64_t lastCongestionDetectedT_us;
+    uint64_t lastLossEventT_us;
+    uint64_t lastTransmitT_us;
+    uint64_t nextTransmitT_us;
+    uint64_t lastRateUpdateT_us;
+    uint64_t lastAdjustPrioritiesT_us;
+    uint64_t lastRttT_us;
+    uint64_t lastBaseDelayRefreshT_us;
+    uint64_t initTime_us;
+    float queueDelayMin;
+    float queueDelayMinAvg;
+
+    /*
+    * Variables for multiple steams handling
+    */
+    Stream *streams[kMaxStreams];
+    int nStreams;
+
+    /*
+      * Statistics
+      */
+    Statistics *statistics;
+
+};
+#endif
diff --git a/Laptop/scream/scream_receiver/code/cmake_install.cmake b/Laptop/scream/scream_receiver/code/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..319b6ed74fc2d3724d793663ac0e366a1c591aa0
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/cmake_install.cmake
@@ -0,0 +1,34 @@
+# Install script for directory: /home/robert/scream/scream_receiver/code
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
diff --git a/Laptop/scream/scream_receiver/code/scream_receiver.cpp b/Laptop/scream/scream_receiver/code/scream_receiver.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..33da68594e7f78c63b8d5c4d577d03f324f85654
--- /dev/null
+++ b/Laptop/scream/scream_receiver/code/scream_receiver.cpp
@@ -0,0 +1,317 @@
+// Scream sender side wrapper
+#include "ScreamRx.h"
+#include "sys/socket.h"
+#include "sys/types.h"
+#include "netinet/in.h"
+#include <string.h> /* needed for memset */
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <sys/time.h>
+#include <iostream>
+#include <fcntl.h>
+#include <unistd.h>
+#include <pthread.h>
+using namespace std;
+
+/*
+* Scream receiver side wrapper
+* Receives SCReAM congestion controlled RTP media and
+*  generates RTCP feedback to the sender, over the same RTP port
+* Media sources (max 6) are demultiplexed and forwarded to local RTP ports
+*  given by local_port list
+*/
+
+#define BUFSIZE 2048
+
+#define MAX_SOURCES 6
+uint32_t SSRC_RTCP=10;
+
+
+// Input UDP socket, RTP packets come here and we send RTCP packets in the
+// reverse direction through this socket
+int fd_in_rtp;
+
+ScreamRx *screamRx = 0;
+
+
+int fd_local_rtp[MAX_SOURCES];
+uint32_t ssrcMap[MAX_SOURCES];
+
+char* in_ip = "192.168.0.20";
+int in_port = 30122;
+struct sockaddr_in in_rtp_addr, out_rtcp_addr, sender_rtcp_addr;
+struct sockaddr_in local_rtp_addr[MAX_SOURCES];
+
+char* local_ip = "127.0.0.1";
+int local_port[MAX_SOURCES] = {30130,30132,30134,30136,30138,30140};
+int nSources = 0;
+
+pthread_mutex_t lock_scream;
+
+long getTimeInUs(){
+  struct timeval tp;
+  gettimeofday(&tp, NULL);
+  long us = tp.tv_sec * 1000000 + tp.tv_usec;
+  return us;
+}
+
+/*
+Extract the sequence number and the timestamp from the RTP header
+0                   1                   2                   3
+0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|V=2|P|X|  CC   |M|     PT      |       sequence number         |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|                           timestamp                           |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|           synchronization source (SSRC) identifier            |
++=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+|            contributing source (CSRC) identifiers             |
+|                             ....                              |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+*/
+
+void parseRtp(unsigned char *buf, uint16_t* seqNr, uint32_t* timeStamp, uint32_t* ssrc) {
+  uint16_t tmp_s;
+  uint32_t tmp_l;
+  memcpy(&tmp_s, buf + 2, 2);
+  *seqNr = ntohs(tmp_s);
+  memcpy(&tmp_l, buf + 4, 4);
+  *timeStamp  = ntohl(tmp_l);
+  memcpy(&tmp_l, buf + 8, 4);
+  *ssrc  = ntohl(tmp_l);
+}
+
+uint64_t lastPunchNatT_us = 0;
+
+#define KEEP_ALIVE_PKT_SIZE 1
+    
+void *rtcpPeriodicThread(void *arg) {
+  unsigned char buf[BUFSIZE];
+  int rtcpSize;
+  uint64_t rtcpFbInterval_us = screamRx->getRtcpFbInterval(); 
+  for (;;) {
+    uint64_t time_us = getTimeInUs();
+
+    if (getTimeInUs() - lastPunchNatT_us > 500000) {
+      /*
+      * Send a small packet just to punch open a hole in the NAT,
+      *  just one single byte will do.
+      * This makes in possible to receive packets on the same port
+      */
+      int ret = sendto(fd_in_rtp, buf, KEEP_ALIVE_PKT_SIZE, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr));
+      lastPunchNatT_us = getTimeInUs();
+      cerr << "." << endl;
+    }
+
+    if (screamRx->isFeedback(time_us) && 
+         (screamRx->checkIfFlushAck() ||
+         (time_us - screamRx->getLastFeedbackT() > rtcpFbInterval_us))) {
+      rtcpFbInterval_us = screamRx->getRtcpFbInterval();
+
+      pthread_mutex_lock(&lock_scream);
+      screamRx->createFeedback(time_us, buf, rtcpSize);
+      pthread_mutex_unlock(&lock_scream);
+      sendto(fd_in_rtp, buf, rtcpSize, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr));
+      lastPunchNatT_us = getTimeInUs();
+    }
+    usleep(500);
+  }
+}
+
+#define MAX_CTRL_SIZE 8192
+#define MAX_BUF_SIZE 65536
+#define ALL_CODE
+
+int main(int argc, char* argv[])
+{
+  unsigned char bufRtp[BUFSIZE];
+  if (argc <= 1) {
+    cerr << "Usage :" << endl << " >scream_receiver incoming_ip incoming_port" << endl;
+    exit(-1);
+  }
+  in_ip = argv[1];
+  in_port = atoi(argv[2]);
+
+
+  screamRx = new ScreamRx(SSRC_RTCP);
+
+  in_rtp_addr.sin_family = AF_INET;
+  in_rtp_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+  in_rtp_addr.sin_port = htons(in_port);
+
+  if ((fd_in_rtp = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+    perror("cannot create socket for incoming RTP packets");
+    return 0;
+  }
+
+  out_rtcp_addr.sin_family = AF_INET;
+  inet_aton(in_ip,(in_addr*) &out_rtcp_addr.sin_addr.s_addr);
+  out_rtcp_addr.sin_port = htons(in_port);
+
+  for (int n=0; n < MAX_SOURCES; n++) {
+    local_rtp_addr[n].sin_family = AF_INET;
+    inet_aton(local_ip,(in_addr*) &local_rtp_addr[n].sin_addr.s_addr);
+    local_rtp_addr[n].sin_port = htons(local_port[n]);
+    if ((fd_local_rtp[n] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+      perror("cannot create socket for outgoing RTP packets to renderer (video decoder)");
+      return 0;
+    }
+  }
+
+  int enable = 1;
+  if (setsockopt(fd_in_rtp, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) {
+    perror("setsockopt(SO_REUSEADDR) failed");
+  }
+  unsigned char set = 0x03;
+  if (setsockopt(fd_in_rtp, IPPROTO_IP, IP_RECVTOS, &set,sizeof(set)) < 0) {
+    cerr << "cannot set recvtos on incoming socket" << endl;
+  } else {
+    cerr << "socket set to recvtos" << endl;
+  }
+
+  if (bind(fd_in_rtp, (struct sockaddr *)&in_rtp_addr, sizeof(in_rtp_addr)) < 0) {
+    perror("bind incoming_rtp_addr failed");
+    return 0;
+  } else{
+    cerr << "Listen on port " << in_port <<" to receive RTP from sender, this is the new version " << endl;
+  }
+
+  struct sockaddr_in sender_rtp_addr;
+  socklen_t addrlen_sender_rtp_addr = sizeof(sender_rtp_addr);
+
+  int recvlen;
+
+  uint64_t last_received_time = 0;
+  uint32_t receivedRtp = 0;
+
+  /*
+  * Send a small packet just to punch open a hole in the NAT,
+  *  just one single byte will do.
+  * This makes in possible to receive packets on the same port
+  */
+  sendto(fd_in_rtp, bufRtp, KEEP_ALIVE_PKT_SIZE, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr));
+  lastPunchNatT_us = getTimeInUs();
+
+  pthread_t rtcp_thread;
+  pthread_mutex_init(&lock_scream, NULL);
+  pthread_create(&rtcp_thread, NULL, rtcpPeriodicThread, "Periodic RTCP thread...");
+
+  int *ecnptr;
+  unsigned char received_ecn;
+
+  struct msghdr rcv_msg;
+  struct iovec rcv_iov[1];
+  char rcv_ctrl_data[MAX_CTRL_SIZE];
+  char rcv_buf[MAX_BUF_SIZE];
+
+   /* Prepare message for receiving */
+  rcv_iov[0].iov_base = rcv_buf;
+  rcv_iov[0].iov_len = MAX_BUF_SIZE;
+
+  rcv_msg.msg_name = NULL;	// Socket is connected
+  rcv_msg.msg_namelen = 0;
+  rcv_msg.msg_iov = rcv_iov;
+  rcv_msg.msg_iovlen = 1;
+  rcv_msg.msg_control = rcv_ctrl_data;
+  rcv_msg.msg_controllen = MAX_CTRL_SIZE;
+
+  for (;;) {
+    /*
+    * Wait for incoing RTP packet, this call can be blocking
+    */
+
+    /*
+    * Extract ECN bits
+    */
+    int recvlen = recvmsg(fd_in_rtp, &rcv_msg, 0);
+    bool isEcnCe = false;
+    if (recvlen == -1) {
+	    perror("recvmsg()");
+	    close(fd_in_rtp);
+	    return EXIT_FAILURE;
+    } else {
+	    struct cmsghdr *cmptr;
+	    int *ecnptr;
+	    unsigned char received_ecn;
+	    for (cmptr = CMSG_FIRSTHDR(&rcv_msg);
+			  cmptr != NULL;
+			  cmptr = CMSG_NXTHDR(&rcv_msg, cmptr)) {
+		    if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_TOS) {
+			    ecnptr = (int*)CMSG_DATA(cmptr);
+			    received_ecn = *ecnptr;
+          if (received_ecn == 0x3)
+            isEcnCe = true;
+		    }
+	    }
+      memcpy(bufRtp,rcv_msg.msg_iov[0].iov_base,recvlen);
+    }
+    uint64_t time_us = getTimeInUs();
+    if (recvlen > 1) {
+      if (bufRtp[1] == 0x7F) {
+        // Packet contains statistics
+        recvlen -= 2; // 2 bytes
+        char s[1000];
+        memcpy(s,&bufRtp[2],recvlen);
+        s[recvlen] = 0x00;
+        cout << s << endl;
+      } else if (bufRtp[1] == 0x7E) {
+        // Packet contains an SSRC map
+	nSources = (recvlen-2)/4;
+        for (int n=0; n < nSources; n++) {
+          uint32_t tmp_l; 
+          memcpy(&tmp_l, bufRtp+2+n*4, 4);
+          ssrcMap[n] = ntohl(tmp_l);
+	}
+      } else {
+        if (time_us - last_received_time > 2000000) {
+          /*
+          * It's been more than 5 seconds since we last received an RTP packet
+          *  let's reset everything to be on the safe side
+          */
+          receivedRtp = 0;
+          pthread_mutex_lock(&lock_scream);
+          delete screamRx;
+          screamRx = new ScreamRx(SSRC_RTCP);
+          pthread_mutex_unlock(&lock_scream);
+          cerr << "Receiver state reset due to idle input" << endl;
+        }
+        last_received_time = time_us;
+        receivedRtp++;
+
+        /*
+        * Parse RTP header
+        */
+        uint16_t seqNr;
+        uint32_t ts;
+        uint32_t ssrc;
+        parseRtp(bufRtp,&seqNr, &ts, &ssrc);
+
+        /*
+        * Map the RTP packets to correct display by means of the ssrcMap
+        */
+        int ix = -1;
+        for (int n=0; n < nSources; n++) {
+           if (ssrc == ssrcMap[n]) {
+             ix = n;
+             break;
+           }
+        }
+        if (ix != -1) {
+          /*
+          * Forward RTP packet to the correct internal port, for e.g GStreamer playout
+          */
+          sendto(fd_local_rtp[ix], bufRtp, recvlen, 0, (struct sockaddr *)&local_rtp_addr[ix], sizeof(local_rtp_addr[ix]));
+	}
+
+        /*
+        * Register received RTP packet with ScreamRx
+        */
+        pthread_mutex_lock(&lock_scream);
+        screamRx->receive(time_us, 0, ssrc, recvlen, seqNr, isEcnCe);
+        pthread_mutex_unlock(&lock_scream);
+      }
+    }
+  }
+}
diff --git a/Laptop/scream/scream_sender/CMakeCache.txt b/Laptop/scream/scream_sender/CMakeCache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56811c77eda4db836ae853dc4db346747f50649d
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeCache.txt
@@ -0,0 +1,255 @@
+# This is the CMakeCache file.
+# For build in directory: /home/user/scream_panasonic/scream_sender
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=scream
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+scream_BINARY_DIR:STATIC=/home/user/scream_panasonic/scream_sender
+
+//Value Computed by CMake
+scream_SOURCE_DIR:STATIC=/home/user/scream_panasonic/scream_sender
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/user/scream_panasonic/scream_sender
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=7
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/user/scream_panasonic/scream_sender
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake
@@ -0,0 +1,68 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "6.3.0")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
@@ -0,0 +1,69 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "6.3.0")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin
new file mode 100644
index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402
Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55
Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..50dad55f9105cc257142dae3142ee2448a2691d7
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.10.0-37-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-37-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.10.0-37-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.10.0-37-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,561 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(SDCC)
+# define COMPILER_ID "SDCC"
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out
new file mode 100644
index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81
Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out differ
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,533 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if __cplusplus >= 201402L
+  "14"
+#elif __cplusplus >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out
new file mode 100644
index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766
Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ
diff --git a/Laptop/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..58ac59250a547d58df29f60bd8a04912f131c9f2
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/user/scream_panasonic/scream_sender")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/scream_sender")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/scream_sender/CMakeFiles/CMakeOutput.log b/Laptop/scream/scream_sender/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000000000000000000000000000000000000..c3698a8a93ae2ec9cad7121815d831734e1b43d9
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,560 @@
+The system is: Linux - 4.10.0-37-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/user/scream_panasonic/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags: 
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/user/scream_panasonic/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_d13ba/fast"
+/usr/bin/make -f CMakeFiles/cmTC_d13ba.dir/build.make CMakeFiles/cmTC_d13ba.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o   -c /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_d13ba
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d13ba.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o  -o cmTC_d13ba -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_2a927/fast"
+/usr/bin/make -f CMakeFiles/cmTC_2a927.dir/build.make CMakeFiles/cmTC_2a927.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc     -o CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_2a927
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a927.dir/link.txt --verbose=1
+/usr/bin/cc      -v CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o  -o cmTC_2a927 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cciIeLsA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a927 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_2a927/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_2a927.dir/build.make CMakeFiles/cmTC_2a927.dir/build]
+  ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc     -o CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_2a927]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a927.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc      -v CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o  -o cmTC_2a927 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cciIeLsA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a927 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cciIeLsA.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_2a927] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bf6b4/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bf6b4.dir/build.make CMakeFiles/cmTC_bf6b4.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o
+/usr/bin/cc    -std=c11 -o CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o   -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c
+Linking C executable cmTC_bf6b4
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bf6b4.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o  -o cmTC_bf6b4 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:1c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_89a4a/fast"
+/usr/bin/make -f CMakeFiles/cmTC_89a4a.dir/build.make CMakeFiles/cmTC_89a4a.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o
+/usr/bin/cc    -std=c99 -o CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o   -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c
+Linking C executable cmTC_89a4a
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_89a4a.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o  -o cmTC_89a4a -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bf412/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bf412.dir/build.make CMakeFiles/cmTC_bf412.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_bf412.dir/feature_tests.c.o
+/usr/bin/cc    -std=c90 -o CMakeFiles/cmTC_bf412.dir/feature_tests.c.o   -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c
+Linking C executable cmTC_bf412
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bf412.dir/link.txt --verbose=1
+/usr/bin/cc       CMakeFiles/cmTC_bf412.dir/feature_tests.c.o  -o cmTC_bf412 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:0c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:0c_variadic_macros
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_ea3ab/fast"
+/usr/bin/make -f CMakeFiles/cmTC_ea3ab.dir/build.make CMakeFiles/cmTC_ea3ab.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o
+/usr/bin/c++      -o CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_ea3ab
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ea3ab.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o  -o cmTC_ea3ab -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9a8a9/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9a8a9.dir/build.make CMakeFiles/cmTC_9a8a9.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++      -o CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_9a8a9
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9a8a9.dir/link.txt --verbose=1
+/usr/bin/c++       -v CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_9a8a9 -rdynamic  
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuqNCoS.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_9a8a9 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_9a8a9/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_9a8a9.dir/build.make CMakeFiles/cmTC_9a8a9.dir/build]
+  ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++      -o CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_9a8a9]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9a8a9.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++       -v CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_9a8a9 -rdynamic  ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuqNCoS.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_9a8a9 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccuqNCoS.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_9a8a9] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..]
+    arg [CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  remove lib [gcc_s]
+  remove lib [gcc]
+  remove lib [gcc_s]
+  remove lib [gcc]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;c]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting CXX [-std=c++14] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_de348/fast"
+/usr/bin/make -f CMakeFiles/cmTC_de348.dir/build.make CMakeFiles/cmTC_de348.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++14 -o CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_de348
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_de348.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o  -o cmTC_de348 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++11] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_df609/fast"
+/usr/bin/make -f CMakeFiles/cmTC_df609.dir/build.make CMakeFiles/cmTC_df609.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++11 -o CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_df609
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_df609.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o  -o cmTC_df609 -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++98] compiler features compiled with the following output:
+Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bda1a/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bda1a.dir/build.make CMakeFiles/cmTC_bda1a.dir/build
+make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o
+/usr/bin/c++     -std=c++98 -o CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_bda1a
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bda1a.dir/link.txt --verbose=1
+/usr/bin/c++        CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o  -o cmTC_bda1a -rdynamic 
+make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:0cxx_alias_templates
+    Feature record: CXX_FEATURE:0cxx_alignas
+    Feature record: CXX_FEATURE:0cxx_alignof
+    Feature record: CXX_FEATURE:0cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:0cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:0cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:0cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:0cxx_default_function_template_args
+    Feature record: CXX_FEATURE:0cxx_defaulted_functions
+    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:0cxx_delegating_constructors
+    Feature record: CXX_FEATURE:0cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:0cxx_explicit_conversions
+    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:0cxx_extern_templates
+    Feature record: CXX_FEATURE:0cxx_final
+    Feature record: CXX_FEATURE:0cxx_func_identifier
+    Feature record: CXX_FEATURE:0cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:0cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:0cxx_inline_namespaces
+    Feature record: CXX_FEATURE:0cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:0cxx_local_type_template_args
+    Feature record: CXX_FEATURE:0cxx_long_long_type
+    Feature record: CXX_FEATURE:0cxx_noexcept
+    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:0cxx_nullptr
+    Feature record: CXX_FEATURE:0cxx_override
+    Feature record: CXX_FEATURE:0cxx_range_for
+    Feature record: CXX_FEATURE:0cxx_raw_string_literals
+    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:0cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:0cxx_rvalue_references
+    Feature record: CXX_FEATURE:0cxx_sizeof_member
+    Feature record: CXX_FEATURE:0cxx_static_assert
+    Feature record: CXX_FEATURE:0cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:0cxx_thread_local
+    Feature record: CXX_FEATURE:0cxx_trailing_return_types
+    Feature record: CXX_FEATURE:0cxx_unicode_literals
+    Feature record: CXX_FEATURE:0cxx_uniform_initialization
+    Feature record: CXX_FEATURE:0cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:0cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:0cxx_variadic_macros
+    Feature record: CXX_FEATURE:0cxx_variadic_templates
diff --git a/Laptop/scream/scream_sender/CMakeFiles/Makefile.cmake b/Laptop/scream/scream_sender/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..7c9aa76814e352989585fccd0fe5a1d8776ffc4f
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/Makefile.cmake
@@ -0,0 +1,48 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "CMakeFiles/3.7.2/CMakeCCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.7.2/CMakeSystem.cmake"
+  "CMakeLists.txt"
+  "code/CMakeLists.txt"
+  "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  "code/CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "code/CMakeFiles/scream_sender.dir/DependInfo.cmake"
+  )
diff --git a/Laptop/scream/scream_sender/CMakeFiles/Makefile2 b/Laptop/scream/scream_sender/CMakeFiles/Makefile2
new file mode 100644
index 0000000000000000000000000000000000000000..26c1afe04a8c1b2a92a6203f08f7511fe7e451d7
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/Makefile2
@@ -0,0 +1,126 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/scream_sender
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/scream_sender
+
+#=============================================================================
+# Directory level rules for directory code
+
+# Convenience name for "all" pass in the directory.
+code/all: code/CMakeFiles/scream_sender.dir/all
+
+.PHONY : code/all
+
+# Convenience name for "clean" pass in the directory.
+code/clean: code/CMakeFiles/scream_sender.dir/clean
+
+.PHONY : code/clean
+
+# Convenience name for "preinstall" pass in the directory.
+code/preinstall:
+
+.PHONY : code/preinstall
+
+#=============================================================================
+# Target rules for target code/CMakeFiles/scream_sender.dir
+
+# All Build rule for target.
+code/CMakeFiles/scream_sender.dir/all:
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/depend
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=1,2,3,4 "Built target scream_sender"
+.PHONY : code/CMakeFiles/scream_sender.dir/all
+
+# Include target in all.
+all: code/CMakeFiles/scream_sender.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+code/CMakeFiles/scream_sender.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles 4
+	$(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_sender.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles 0
+.PHONY : code/CMakeFiles/scream_sender.dir/rule
+
+# Convenience name for target.
+scream_sender: code/CMakeFiles/scream_sender.dir/rule
+
+.PHONY : scream_sender
+
+# clean rule for target.
+code/CMakeFiles/scream_sender.dir/clean:
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/clean
+.PHONY : code/CMakeFiles/scream_sender.dir/clean
+
+# clean rule for target.
+clean: code/CMakeFiles/scream_sender.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt b/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64b30a512b1ae923b9e2b7f13d58131ff0e80cef
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,5 @@
+/home/user/scream_panasonic/scream_sender/CMakeFiles/rebuild_cache.dir
+/home/user/scream_panasonic/scream_sender/CMakeFiles/edit_cache.dir
+/home/user/scream_panasonic/scream_sender/code/CMakeFiles/rebuild_cache.dir
+/home/user/scream_panasonic/scream_sender/code/CMakeFiles/edit_cache.dir
+/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir
diff --git a/Laptop/scream/scream_sender/CMakeFiles/cmake.check_cache b/Laptop/scream/scream_sender/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin
new file mode 100644
index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72
Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin differ
diff --git a/Laptop/scream/scream_sender/CMakeFiles/feature_tests.c b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+  const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/scream_sender/CMakeFiles/feature_tests.cxx b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.cxx
@@ -0,0 +1,405 @@
+
+  const char features[] = {"\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_aggregate_default_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alias_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignof\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attributes\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attribute_deprecated\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_auto_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_binary_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_contextual_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_decltype\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_auto\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_incomplete_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_default_function_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_move_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_delegating_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_deleted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_digit_separators\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_enum_forward_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_explicit_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_extended_friend_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_extern_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_final\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_func_identifier\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_generalized_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_generic_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_inheriting_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_inline_namespaces\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_lambda_init_captures\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_local_type_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_long_long_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_noexcept\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_nonstatic_member_init\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_nullptr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_override\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_range_for\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_raw_string_literals\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_reference_qualified_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_relaxed_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_return_type_deduction\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_right_angle_brackets\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_rvalue_references\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_sizeof_member\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_static_assert\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_strong_enums\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
+"1"
+#else
+"0"
+#endif
+"cxx_template_template_parameters\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_thread_local\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_trailing_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unicode_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_uniform_initialization\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unrestricted_unions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_user_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_variable_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_macros\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_templates\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/Laptop/scream/scream_sender/CMakeFiles/progress.marks b/Laptop/scream/scream_sender/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..b8626c4cff2849624fb67f87cd0ad72b163671ad
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+4
diff --git a/Laptop/scream/scream_sender/CMakeLists.txt b/Laptop/scream/scream_sender/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2b4e245e090016ddbccf25d2669b503d4cb9b483
--- /dev/null
+++ b/Laptop/scream/scream_sender/CMakeLists.txt
@@ -0,0 +1,83 @@
+cmake_minimum_required(VERSION 2.6)
+
+PROJECT( scream )
+
+message("Source Dir:" ${scream_SOURCE_DIR})
+
+SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin)
+SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib)
+SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin)
+
+SET(scream_BIN ${scream_SOURCE_DIR}/bin)
+
+message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR})
+
+IF(UNIX)
+add_definitions(-std=c++0x)
+ENDIF(UNIX)
+
+IF(WIN32)
+IF(MSVC12)
+message("Detected MSVC12 compiler")
+set(MSVC_VER VC12)
+ELSEIF(MSVC11)
+message("Detected MSVC11 compiler")
+set(MSVC_VER VC11)
+ELSEIF(MSVC10)
+message("Detected MSVC10 compiler")
+set(MSVC_VER VC10)
+ELSEIF(MSVC14)
+message("Detected MSVC14 compiler")
+set(MSVC_VER VC14)
+ELSE(MSVC12)
+message("WARNING: Unknown/unsupported MSVC version")
+ENDIF(MSVC12)
+ENDIF(WIN32)
+
+if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 64bit
+  message("Detected 64-bit build - compiling with -fPIC")
+  SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread")
+else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# 32 bit
+message("Detected 32-bit build")
+SET(CMAKE_CXX_FLAGS "-fpermissive -pthread")
+endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+
+#SET(LDFLAGS "-lrt -pthread -lpthread")
+
+SET(screamIncludes
+${scream_SOURCE_DIR}
+${scream_SOURCE_DIR}/code
+)
+
+message("screamIncludes directories:" ${screamIncludes})
+
+# lib directories
+IF(WIN32)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+)
+ELSEIF(UNIX)
+SET(screamLink
+${scream_SOURCE_DIR}/../lib
+/usr/local/lib
+/usr/lib
+)
+ENDIF(WIN32)
+
+SET(LibDir
+${scream_SOURCE_DIR}/../lib
+)
+
+
+set(LIBS ${LIBS} -lrt -pthread)
+
+message("LibDir directories:" ${LibDir})
+
+# Include directories
+INCLUDE_DIRECTORIES(
+${scream_SOURCE_DIR}/../include
+)
+
+ADD_SUBDIRECTORY( code)
diff --git a/Laptop/scream/scream_sender/Makefile b/Laptop/scream/scream_sender/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..21ffea062ecc9e81c720795ebfbee6eff84ba7a0
--- /dev/null
+++ b/Laptop/scream/scream_sender/Makefile
@@ -0,0 +1,148 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/scream_sender
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/scream_sender
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles /home/user/scream_panasonic/scream_sender/CMakeFiles/progress.marks
+	$(MAKE) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named scream_sender
+
+# Build rule for target.
+scream_sender: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 scream_sender
+.PHONY : scream_sender
+
+# fast build rule for target.
+scream_sender/fast:
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build
+.PHONY : scream_sender/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... scream_sender"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_sender/bin/scream_sender b/Laptop/scream/scream_sender/bin/scream_sender
new file mode 100755
index 0000000000000000000000000000000000000000..6c4f2284046068f49e41da08967fe9b0dd332876
Binary files /dev/null and b/Laptop/scream/scream_sender/bin/scream_sender differ
diff --git a/Laptop/scream/scream_sender/cmake_install.cmake b/Laptop/scream/scream_sender/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..138f8669ba98ce2e0c2de1bc63905571b8dd9560
--- /dev/null
+++ b/Laptop/scream/scream_sender/cmake_install.cmake
@@ -0,0 +1,50 @@
+# Install script for directory: /home/user/scream_panasonic/scream_sender
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/user/scream_panasonic/scream_sender/code/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/user/scream_panasonic/scream_sender/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..58ac59250a547d58df29f60bd8a04912f131c9f2
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/user/scream_panasonic/scream_sender")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/scream_sender")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks b/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..b8626c4cff2849624fb67f87cd0ad72b163671ad
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+4
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache
new file mode 100644
index 0000000000000000000000000000000000000000..1cf004cfb65263b166c3f4aaac770683267f02f8
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache
@@ -0,0 +1,62 @@
+#IncludeRegexLine: ^[ 	]*#[ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+/home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp
+RtpQueue.h
+/home/user/scream_panasonic/scream_sender/code/RtpQueue.h
+iostream
+-
+string.h
+-
+
+/home/user/scream_panasonic/scream_sender/code/RtpQueue.h
+
+/home/user/scream_panasonic/scream_sender/code/ScreamRx.h
+cstdint
+-
+list
+-
+
+/home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp
+RtpQueue.h
+/home/user/scream_panasonic/scream_sender/code/RtpQueue.h
+ScreamTx.h
+/home/user/scream_panasonic/scream_sender/code/ScreamTx.h
+ScreamRx.h
+/home/user/scream_panasonic/scream_sender/code/ScreamRx.h
+winSock2.h
+-
+arpa/inet.h
+-
+cstdint
+-
+cmath
+-
+string.h
+-
+iostream
+-
+algorithm
+-
+stdio.h
+-
+stdlib.h
+-
+math.h
+-
+
+/home/user/scream_panasonic/scream_sender/code/ScreamTx.h
+string.h
+-
+iostream
+-
+cstdint
+-
+
+/home/user/scream_panasonic/scream_sender/code/scream_sender.cpp
+
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e73ede86aeb5334e1e45f82b10aa97e8f33b9415
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake
@@ -0,0 +1,25 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp" "/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o"
+  "/home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp" "/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o"
+  "/home/user/scream_panasonic/scream_sender/code/scream_sender.cpp" "/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../include"
+  "."
+  "code"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..509ed71a1e448926a192b2cb4202a13fb11df531
Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o differ
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..7fa5f847b8dfdfcdd2c95a95e38b8aa4c3cef2ad
Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o differ
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make
new file mode 100644
index 0000000000000000000000000000000000000000..0e4e9e0d5bc3a4868822279901d84e9530831d00
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make
@@ -0,0 +1,167 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/scream_sender
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/scream_sender
+
+# Include any dependencies generated for this target.
+include code/CMakeFiles/scream_sender.dir/depend.make
+
+# Include the progress variables for this target.
+include code/CMakeFiles/scream_sender.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include code/CMakeFiles/scream_sender.dir/flags.make
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/RtpQueue.cpp.o -c /home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/RtpQueue.cpp.i"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp > CMakeFiles/scream_sender.dir/RtpQueue.cpp.i
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/RtpQueue.cpp.s"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp -o CMakeFiles/scream_sender.dir/RtpQueue.cpp.s
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides.build
+.PHONY : code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o
+
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/ScreamTx.cpp.o -c /home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/ScreamTx.cpp.i"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp > CMakeFiles/scream_sender.dir/ScreamTx.cpp.i
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/ScreamTx.cpp.s"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp -o CMakeFiles/scream_sender.dir/ScreamTx.cpp.s
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides.build
+.PHONY : code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o
+
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/scream_sender.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++   $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/scream_sender.cpp.o -c /home/user/scream_panasonic/scream_sender/code/scream_sender.cpp
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/scream_sender.cpp.i"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/scream_sender/code/scream_sender.cpp > CMakeFiles/scream_sender.dir/scream_sender.cpp.i
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/scream_sender.cpp.s"
+	cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/scream_sender/code/scream_sender.cpp -o CMakeFiles/scream_sender.dir/scream_sender.cpp.s
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires:
+
+.PHONY : code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires
+	$(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides.build
+.PHONY : code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o
+
+
+# Object files for target scream_sender
+scream_sender_OBJECTS = \
+"CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" \
+"CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" \
+"CMakeFiles/scream_sender.dir/scream_sender.cpp.o"
+
+# External object files for target scream_sender
+scream_sender_EXTERNAL_OBJECTS =
+
+bin/scream_sender: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o
+bin/scream_sender: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o
+bin/scream_sender: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o
+bin/scream_sender: code/CMakeFiles/scream_sender.dir/build.make
+bin/scream_sender: code/CMakeFiles/scream_sender.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking CXX executable ../bin/scream_sender"
+	cd /home/user/scream_panasonic/scream_sender/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/scream_sender.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+code/CMakeFiles/scream_sender.dir/build: bin/scream_sender
+
+.PHONY : code/CMakeFiles/scream_sender.dir/build
+
+code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires
+code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires
+code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires
+
+.PHONY : code/CMakeFiles/scream_sender.dir/requires
+
+code/CMakeFiles/scream_sender.dir/clean:
+	cd /home/user/scream_panasonic/scream_sender/code && $(CMAKE_COMMAND) -P CMakeFiles/scream_sender.dir/cmake_clean.cmake
+.PHONY : code/CMakeFiles/scream_sender.dir/clean
+
+code/CMakeFiles/scream_sender.dir/depend:
+	cd /home/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/user/scream_panasonic/scream_sender /home/user/scream_panasonic/scream_sender/code /home/user/scream_panasonic/scream_sender /home/user/scream_panasonic/scream_sender/code /home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : code/CMakeFiles/scream_sender.dir/depend
+
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..045d102f17b47fed804dd06db608a7bddfb35c7b
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake
@@ -0,0 +1,12 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/scream_sender.dir/RtpQueue.cpp.o"
+  "CMakeFiles/scream_sender.dir/ScreamTx.cpp.o"
+  "CMakeFiles/scream_sender.dir/scream_sender.cpp.o"
+  "../bin/scream_sender.pdb"
+  "../bin/scream_sender"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/scream_sender.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal
new file mode 100644
index 0000000000000000000000000000000000000000..fa193a5c37669a25b5767483581a358db446bf7f
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal
@@ -0,0 +1,13 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o
+ /home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp
+ /home/user/scream_panasonic/scream_sender/code/RtpQueue.h
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o
+ /home/user/scream_panasonic/scream_sender/code/RtpQueue.h
+ /home/user/scream_panasonic/scream_sender/code/ScreamRx.h
+ /home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp
+ /home/user/scream_panasonic/scream_sender/code/ScreamTx.h
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o
+ /home/user/scream_panasonic/scream_sender/code/scream_sender.cpp
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..6ebc7b0fa2b432757a3168f005d2f314048c278c
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make
@@ -0,0 +1,13 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.cpp
+code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.h
+
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/RtpQueue.h
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamRx.h
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.cpp
+code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.h
+
+code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/scream_sender.cpp
+
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make
new file mode 100644
index 0000000000000000000000000000000000000000..2278f3d04321d6d3f2aabc7eaa3bdf05b0b37270
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -fPIC -fpermissive -pthread   -std=c++0x
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/user/scream_panasonic/scream_sender/../include -I/home/user/scream_panasonic/scream_sender -I/home/user/scream_panasonic/scream_sender/code 
+
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a24f55429ac4f32b72753cf95c213fe713cd2352
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++   -fPIC -fpermissive -pthread   CMakeFiles/scream_sender.dir/RtpQueue.cpp.o CMakeFiles/scream_sender.dir/ScreamTx.cpp.o CMakeFiles/scream_sender.dir/scream_sender.cpp.o  -o ../bin/scream_sender  -L/home/user/scream_panasonic/scream_sender/../lib  -L/usr/local/lib -rdynamic 
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make
new file mode 100644
index 0000000000000000000000000000000000000000..a69a57e8e4ffee737b6054e9068354426a41030f
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make
@@ -0,0 +1,5 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+CMAKE_PROGRESS_3 = 3
+CMAKE_PROGRESS_4 = 4
+
diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..b9457f4e8e43bf03dee4cbb5b73cbf55729cb882
Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o differ
diff --git a/Laptop/scream/scream_sender/code/CMakeLists.txt b/Laptop/scream/scream_sender/code/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a3a464695799eb1ed588cbcaf3c08748cfc9bf4c
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/CMakeLists.txt
@@ -0,0 +1,33 @@
+# source files
+SET(SRCS
+RtpQueue.cpp
+ScreamTx.cpp
+scream_sender.cpp
+)
+
+SET(HEADERS
+RtpQueue.h
+ScreamRx.h
+ScreamTx.h
+)
+
+SET(SRC_1
+${SRCS}
+scream_sender.cpp
+)
+
+INCLUDE_DIRECTORIES(
+${screamIncludes}
+)
+
+LINK_DIRECTORIES(
+${screamLink}
+)
+
+ADD_EXECUTABLE(scream_sender ${SRC_1} ${HEADERS})
+
+
+TARGET_LINK_LIBRARIES (
+scream_sender
+${screamLibs}
+)
diff --git a/Laptop/scream/scream_sender/code/Makefile b/Laptop/scream/scream_sender/code/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..4f534fa48140e75596ec577858daba5fe2f3dcf2
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/Makefile
@@ -0,0 +1,240 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.7
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/user/scream_panasonic/scream_sender
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/user/scream_panasonic/scream_sender
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles /home/user/scream_panasonic/scream_sender/code/CMakeFiles/progress.marks
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+code/CMakeFiles/scream_sender.dir/rule:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_sender.dir/rule
+.PHONY : code/CMakeFiles/scream_sender.dir/rule
+
+# Convenience name for target.
+scream_sender: code/CMakeFiles/scream_sender.dir/rule
+
+.PHONY : scream_sender
+
+# fast build rule for target.
+scream_sender/fast:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build
+.PHONY : scream_sender/fast
+
+RtpQueue.o: RtpQueue.cpp.o
+
+.PHONY : RtpQueue.o
+
+# target to build an object file
+RtpQueue.cpp.o:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o
+.PHONY : RtpQueue.cpp.o
+
+RtpQueue.i: RtpQueue.cpp.i
+
+.PHONY : RtpQueue.i
+
+# target to preprocess a source file
+RtpQueue.cpp.i:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.i
+.PHONY : RtpQueue.cpp.i
+
+RtpQueue.s: RtpQueue.cpp.s
+
+.PHONY : RtpQueue.s
+
+# target to generate assembly for a file
+RtpQueue.cpp.s:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.s
+.PHONY : RtpQueue.cpp.s
+
+ScreamTx.o: ScreamTx.cpp.o
+
+.PHONY : ScreamTx.o
+
+# target to build an object file
+ScreamTx.cpp.o:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o
+.PHONY : ScreamTx.cpp.o
+
+ScreamTx.i: ScreamTx.cpp.i
+
+.PHONY : ScreamTx.i
+
+# target to preprocess a source file
+ScreamTx.cpp.i:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.i
+.PHONY : ScreamTx.cpp.i
+
+ScreamTx.s: ScreamTx.cpp.s
+
+.PHONY : ScreamTx.s
+
+# target to generate assembly for a file
+ScreamTx.cpp.s:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.s
+.PHONY : ScreamTx.cpp.s
+
+scream_sender.o: scream_sender.cpp.o
+
+.PHONY : scream_sender.o
+
+# target to build an object file
+scream_sender.cpp.o:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o
+.PHONY : scream_sender.cpp.o
+
+scream_sender.i: scream_sender.cpp.i
+
+.PHONY : scream_sender.i
+
+# target to preprocess a source file
+scream_sender.cpp.i:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.i
+.PHONY : scream_sender.cpp.i
+
+scream_sender.s: scream_sender.cpp.s
+
+.PHONY : scream_sender.s
+
+# target to generate assembly for a file
+scream_sender.cpp.s:
+	cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.s
+.PHONY : scream_sender.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... scream_sender"
+	@echo "... RtpQueue.o"
+	@echo "... RtpQueue.i"
+	@echo "... RtpQueue.s"
+	@echo "... ScreamTx.o"
+	@echo "... ScreamTx.i"
+	@echo "... ScreamTx.s"
+	@echo "... scream_sender.o"
+	@echo "... scream_sender.i"
+	@echo "... scream_sender.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/Laptop/scream/scream_sender/code/RtpQueue.cpp b/Laptop/scream/scream_sender/code/RtpQueue.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..47c1fb4ed09e07840207d19866ff7ddcacefe12f
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/RtpQueue.cpp
@@ -0,0 +1,121 @@
+#include "RtpQueue.h"
+#include <iostream>
+#include <string.h>
+using namespace std;
+/*
+* Implements a simple RTP packet queue
+*/
+
+RtpQueueItem::RtpQueueItem() {
+    used = false;
+    size = 0;
+    seqNr = 0;
+}
+
+
+RtpQueue::RtpQueue() {
+    for (int n=0; n < kRtpQueueSize; n++) {
+        items[n] = new RtpQueueItem();
+    }
+    head = -1;
+    tail = 0;
+    nItems = 0;
+    sizeOfLastFrame = 0;
+    bytesInQueue_ = 0;
+    sizeOfQueue_ = 0;
+    sizeOfNextRtp_ = -1;
+}
+
+void RtpQueue::push(void *rtpPacket, int size, unsigned short seqNr, float ts) {
+    int ix = head+1;
+    if (ix == kRtpQueueSize) ix = 0;
+    if (items[ix]->used) {
+      /*
+      * RTP queue is full, do a drop tail i.e ignore new RTP packets
+      */
+      return;
+    }
+    head = ix;
+
+    memcpy(items[head]->packet, rtpPacket, size);
+    items[head]->seqNr = seqNr;
+    items[head]->size = size;
+    items[head]->ts = ts;
+    items[head]->used = true;
+    bytesInQueue_ += size;
+    sizeOfQueue_ += 1;
+    computeSizeOfNextRtp();
+}
+
+bool RtpQueue::pop(void *rtpPacket, int& size, unsigned short& seqNr) {
+    if (items[tail]->used == false) {
+        return false;
+        sizeOfNextRtp_ = -1;
+    } else {
+        size = items[tail]->size;
+        memcpy(rtpPacket,items[tail]->packet,size);
+        seqNr = items[tail]->seqNr;
+        items[tail]->used = false;
+        tail++; if (tail == kRtpQueueSize) tail = 0;
+        bytesInQueue_ -= size;
+        sizeOfQueue_ -= 1;
+        computeSizeOfNextRtp();
+        return true;
+    }
+}
+
+void RtpQueue::computeSizeOfNextRtp() {
+    if (!items[tail]->used) {
+        sizeOfNextRtp_ = - 1;
+    } else {
+        sizeOfNextRtp_ = items[tail]->size;
+    }
+}
+
+int RtpQueue::sizeOfNextRtp() {
+    return sizeOfNextRtp_;
+}
+
+int RtpQueue::seqNrOfNextRtp() {
+    if (!items[tail]->used) {
+        return -1;
+    } else {
+        return items[tail]->seqNr;
+    }
+}
+
+int RtpQueue::bytesInQueue() {
+    return bytesInQueue_;
+}
+
+int RtpQueue::sizeOfQueue() {
+    return sizeOfQueue_;
+}
+
+float RtpQueue::getDelay(float currTs) {
+    if (items[tail]->used == false) {
+        return 0;
+    } else {
+        return currTs-items[tail]->ts;
+    }
+}
+
+bool RtpQueue::sendPacket(void *rtpPacket, int& size, unsigned short& seqNr) {
+    if (sizeOfQueue() > 0) {
+        pop(rtpPacket, size, seqNr);
+        return true;
+    }
+    return false;
+}
+
+void RtpQueue::clear() {
+    for (int n=0; n < kRtpQueueSize; n++) {
+        items[n]->used = false;
+    }
+    head = -1;
+    tail = 0;
+    nItems = 0;
+    bytesInQueue_ = 0;
+    sizeOfQueue_ = 0;
+    sizeOfNextRtp_ = -1;
+}
diff --git a/Laptop/scream/scream_sender/code/RtpQueue.h b/Laptop/scream/scream_sender/code/RtpQueue.h
new file mode 100644
index 0000000000000000000000000000000000000000..82c6ac873e17204d4a96e767a7006fb8e08b3ebf
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/RtpQueue.h
@@ -0,0 +1,59 @@
+#ifndef RTP_QUEUE
+#define RTP_QUEUE
+
+/*
+* Implements a simple RTP packet queue, one RTP queue
+* per stream {SSRC,PT}
+*/
+
+class RtpQueueIface {
+public:
+    virtual void clear() = 0;
+    virtual int sizeOfNextRtp() = 0;
+    virtual int seqNrOfNextRtp() = 0;
+    virtual int bytesInQueue() = 0; // Number of bytes in queue
+    virtual int sizeOfQueue() = 0;  // Number of items in queue
+    virtual float getDelay(float currTs) = 0;
+    virtual int getSizeOfLastFrame() = 0;
+};
+
+class RtpQueueItem {
+public:
+    RtpQueueItem();
+    char packet[2000];
+    int size;
+    unsigned short seqNr;
+    float ts;
+    bool used;
+};
+
+const int kRtpQueueSize = 1024;
+class RtpQueue : public RtpQueueIface {
+public:
+    RtpQueue();
+
+    void push(void *rtpPacket, int size, unsigned short seqNr, float ts);
+    bool pop(void *rtpPacket, int &size, unsigned short &seqNr);
+    int sizeOfNextRtp();
+    int seqNrOfNextRtp();
+    int bytesInQueue(); // Number of bytes in queue
+    int sizeOfQueue();  // Number of items in queue
+    float getDelay(float currTs);
+    bool sendPacket(void *rtpPacket, int &size, unsigned short &seqNr);
+    void clear();
+    int getSizeOfLastFrame() {return sizeOfLastFrame;};
+    void setSizeOfLastFrame(int sz) {sizeOfLastFrame=sz;};
+    void computeSizeOfNextRtp();
+
+    RtpQueueItem *items[kRtpQueueSize];
+    int head; // Pointer to last inserted item
+    int tail; // Pointer to the oldest item
+    int nItems;
+    int sizeOfLastFrame;
+
+    int bytesInQueue_;
+    int sizeOfQueue_;
+    int sizeOfNextRtp_;
+};
+
+#endif
diff --git a/Laptop/scream/scream_sender/code/ScreamRx.h b/Laptop/scream/scream_sender/code/ScreamRx.h
new file mode 100644
index 0000000000000000000000000000000000000000..f1d9e83c05b476833e82d926ca13d187f9d4179c
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/ScreamRx.h
@@ -0,0 +1,146 @@
+#ifndef SCREAM_RX
+#define SCREAM_RX
+#include <cstdint>
+#include <list>
+const int kAckVectorBits = 64;
+
+/*
+* This module implements the receiver side of SCReAM.
+* As SCReAM is a sender based congestion control, the receiver side is
+*  actually dumber than dumb. In essense the only thing that it does is to
+*  + Record receive time stamps and RTP sequence numbers for incoming RTP packets
+*  + Generate RTCP feedback elements
+*  + Calculate an appropriate RTCP feedback interval
+* See https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf
+*  for details on how it is integrated in audio/video platforms.
+* A full implementation needs the additional code for
+*  + RTCP feedback (e.g using RFC3611 XR elements)
+*  + Other obvious stuff such as RTP payload depacketizer, video+audio deoders, rendering, dejitterbuffers
+* It is recommended that RTCP feedback for multiple streams are bundled in one RTCP packet.
+*  However as low bitrate media (e.g audio) requires a lower feedback rate than high bitrate media (e.g video)
+*  it is possible to include RTCP feedback for the audio stream more seldom. The code for this is T.B.D
+*/
+class ScreamRx {
+public:
+    ScreamRx(uint32_t ssrc); // SSRC of this RTCP session
+    /*
+    * One instance is created for each source SSRC
+    */
+    class Stream {
+    public:
+        Stream(uint32_t ssrc);
+
+        bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; };
+
+        bool checkIfFlushAck();
+        /*
+        * Receive RTP packet
+        */
+        void receive(uint64_t time_us,
+            void *rtpPacket,
+            int size,
+            uint16_t seqNr,
+            bool isEcnCe);
+
+        uint32_t ssrc;                // SSRC of stream (source SSRC)
+        uint16_t highestSeqNr;        // Highest received sequence number
+        uint16_t highestSeqNrTx;      // Highest fed back sequence number
+        uint32_t receiveTimestamp;    // Wall clock time
+        uint64_t ackVector;           // List of received packets
+        uint16_t ecnCeMarkedBytes;    // Number of ECN-CE marked bytes
+                                      //  (i.e size of RTP packets with CE set in IP header)
+
+        uint64_t lastFeedbackT_us;    // Last time feedback transmitted for
+                                      //  this SSRC
+        int nRtpSinceLastRtcp;        // Number of RTP packets since last transmitted RTCP
+
+        bool firstReceived;
+
+        float timeStampConversionFactor;
+
+        int ix;
+    };
+
+    /*
+    * Check to ensure that ACK vector can cover also large holes in
+    *  in the received sequence number space. These cases can frequently occur when
+    *  SCReAM is used in frame discard mode i.e. when real video rate control is
+    *  not possible 
+    */
+    bool checkIfFlushAck();
+
+    /*
+    * Function is called each time an RTP packet is received
+    */
+    void receive(uint64_t time_us,
+        void* rtpPacket,
+        uint32_t ssrc,
+        int size,
+        uint16_t seqNr,
+        bool isEcnCe = false);
+
+    /*
+    * Return TRUE if an RTP packet has been received and there is
+    * pending feedback
+    */
+    bool isFeedback(uint64_t time_us);
+
+    uint64_t getRtcpFbInterval();
+
+    /*
+    * Get SCReAM RTCP feedback elements
+    * return FALSE if no pending feedback available
+    */
+    bool getFeedback(uint64_t time_us,
+        uint32_t &ssrc,
+        uint32_t &receiveTimestamp,
+        uint16_t &highestSeqNr,
+        uint64_t &ackVector,
+        uint16_t &ecnCeMarkedBytes);
+
+    /*
+    * Create feedback according to the format below. It is up to the
+    * wrapper application to prepend this RTCP with SR or RR when needed
+    * BT = 255, means that this is experimental use
+    *
+    * 0                   1                   2                   3
+    * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |V=2|P|reserved |   PT=XR=207   |           length=6            |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                              SSRC                             |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |     BT=255    |    reserved   |         block length=4        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                        SSRC of source                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b0-31)                        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b32-63)                       |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                    Timestamp (32bits)                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    */
+    bool createFeedback(uint64_t time_us, unsigned char *buf, int &size);
+
+    uint64_t getLastFeedbackT() { return lastFeedbackT_us; };
+
+    uint64_t lastFeedbackT_us;
+    int bytesReceived;
+    uint64_t lastRateComputeT_us;
+    float averageReceivedRate;
+    uint64_t rtcpFbInterval_us;
+    uint32_t ssrc;
+
+    int getIx(uint32_t ssrc);
+    int ix;
+
+    /*
+    * Variables for multiple steams handling
+    */
+    std::list<Stream*> streams;
+};
+
+#endif
diff --git a/Laptop/scream/scream_sender/code/ScreamTx.cpp b/Laptop/scream/scream_sender/code/ScreamTx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d638130f0759a6990b2eb878c30669632afc7d12
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/ScreamTx.cpp
@@ -0,0 +1,1912 @@
+#include "RtpQueue.h"
+#include "ScreamTx.h"
+#include "ScreamRx.h"
+#ifdef _MSC_VER
+#define NOMINMAX
+#include <winSock2.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <cstdint>
+#include <cmath>
+#include <string.h>
+#include <iostream>
+#include <algorithm>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+// === Some good to have features, SCReAM works also
+//     with these disabled
+// Fast start can resume if little or no congestion detected
+static const bool kEnableConsecutiveFastStart = true;
+// Packet pacing reduces jitter
+static const bool kEnablePacketPacing = true;
+static const float kPacketPacingHeadRoom = 1.5f;
+
+// Rate update interval
+static const uint64_t kRateAdjustInterval_us = 200000; // 200ms
+
+// ==== Less important tuning parameters ====
+// Min pacing interval and min pacing rate
+static const float kMinPaceInterval = 0.000f;
+static const float kMinimumBandwidth = 5000.0f; // bps
+// Initial MSS, this is set quite low in order to make it possible to
+//  use SCReAM with audio only
+static const int kInitMss = 100;
+
+// Min and max queue delay target
+static const float kQueueDelayTargetMax = 0.3f; //ms
+
+// Congestion window validation
+static const float kBytesInFlightHistInterval_us = 1000000; // Time (s) between stores 1s
+static const float kMaxBytesInFlightHeadRoom = 1.1f;
+// Queue delay trend and shared bottleneck detection
+static const uint64_t kQueueDelayFractionHistInterval_us = 50000; // 50ms
+// video rate estimation update period
+static const uint64_t kRateUpdateInterval_us = 50000;  // 50ms
+
+// Packet reordering margin (us)
+static const uint64_t kReorderTime_us = 20000;
+static const uint64_t kMinRtpQueueDiscardInterval_us = 1000000;
+
+// Update interval for base delay history
+static const uint64_t kBaseDelayUpdateInterval_us = 10000000;
+
+// L4S alpha gain factor, for scalable congestion control
+static const float kL4sG = 0.125f;
+
+// Min CWND in MSS
+static int kMinCwndMss = 3;
+
+ScreamTx::ScreamTx(float lossBeta_,
+    float ecnCeBeta_,
+    float queueDelayTargetMin_,
+    bool enableSbd_,
+    float gainUp_,
+    float gainDown_,
+    int cwnd_,
+    float cautiousPacing_,
+    int bytesInFlightHistSize_,
+    bool isL4s_,
+    bool openWindow_
+    ) :
+    sRttSh_us(0),
+    lossBeta(lossBeta_),
+    ecnCeBeta(ecnCeBeta_),
+    queueDelayTargetMin(queueDelayTargetMin_),
+    enableSbd(enableSbd_),
+    gainUp(gainUp_),
+    gainDown(gainDown_),
+    cautiousPacing(cautiousPacing_),
+    bytesInFlightHistSize(bytesInFlightHistSize_),
+    openWindow(openWindow_),
+    isL4s(isL4s_),
+    sRtt_us(0),
+    sRtt(0.0f),
+    ackedOwd(0),
+    baseOwd(UINT32_MAX),
+    queueDelay(0.0),
+    queueDelayFractionAvg(0.0),
+    queueDelayTrend(0.0),
+    queueDelayTarget(queueDelayTargetMin),
+    queueDelaySbdVar(0.0),
+    queueDelaySbdMean(0.0),
+    queueDelaySbdMeanSh(0.0),
+
+    bytesNewlyAcked(0),
+    mss(kInitMss),
+    cwnd(kInitMss * 2),
+    cwndMin(kInitMss * 2),
+    lastBytesInFlightT_us(0),
+    bytesInFlightMaxLo(0),
+    bytesInFlightMaxHi(0),
+    bytesInFlightHistLoMem(0),
+    bytesInFlightHistHiMem(0),
+    maxBytesInFlight(0.0f),
+
+    lossEvent(false),
+    wasLossEvent(false),
+    lossEventRate(0.0),
+    ecnCeEvent(false),
+    l4sAlpha(0.1f),
+    bytesMarkedThisRtt(0),
+    bytesDeliveredThisRtt(0),
+    lastL4sAlphaUpdateT_us(0),
+    inFastStart(true),
+
+    paceInterval_us(0),
+    paceInterval(0.0),
+    rateTransmittedAvg(0.0),
+
+    isInitialized(false),
+    lastSRttUpdateT_us(0),
+    lastBaseOwdAddT_us(0),
+    baseOwdResetT_us(0),
+    lastAddToQueueDelayFractionHistT_us(0),
+    lastLossEventT_us(0),
+    lastTransmitT_us(0),
+    nextTransmitT_us(0),
+    lastRateUpdateT_us(0),
+    accBytesInFlightMax(0),
+    nAccBytesInFlightMax(0),
+    rateTransmitted(0.0f),
+    rateAcked(0.0f),
+    queueDelayTrendMem(0.0f),
+    lastCwndUpdateT_us(0),
+    bytesInFlight(0),
+    bytesInFlightLog(0),
+    lastBaseDelayRefreshT_us(0),
+    maxRate(0.0f),
+    baseOwdHistMin(UINT32_MAX)
+{
+    if (cwnd_ == 0) {
+        cwnd = kInitMss * 2;
+    }
+    else {
+        cwnd = cwnd_;
+    }
+    if (openWindow) {
+        cwndMin = 10000000;
+        cwnd = cwndMin;
+    }
+
+    for (int n = 0; n < kBaseOwdHistSize; n++)
+        baseOwdHist[n] = UINT32_MAX;
+    baseOwdHistPtr = 0;
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++)
+        queueDelayFractionHist[n] = 0.0f;
+    queueDelayFractionHistPtr = 0;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++)
+        queueDelayNormHist[n] = 0.0f;
+    queueDelayNormHistPtr = 0;
+    for (int n = 0; n < kBytesInFlightHistSizeMax; n++) {
+        bytesInFlightHistLo[n] = 0;
+        bytesInFlightHistHi[n] = 0;
+    }
+    bytesInFlightHistPtr = 0;
+    nStreams = 0;
+    for (int n = 0; n < kMaxStreams; n++)
+        streams[n] = NULL;
+
+    queueDelayMax = 0.0f;
+    queueDelayMinAvg = 0.0f;
+    queueDelayMin = 1000.0;
+
+    statistics = new Statistics();
+}
+
+ScreamTx::~ScreamTx() {
+    for (int n = 0; n < nStreams; n++)
+        delete streams[n];
+    delete statistics;
+}
+
+ScreamTx::Statistics::Statistics() {
+    sumRateTx = 0.0f;
+    sumRateLost = 0.0f;
+    avgRateTx = 0.0f;
+    avgRtt = 0.0f;
+    avgQueueDelay = 0.0f;
+    rateLostAcc = 0.0f;
+    rateLostN = 0;
+    for (int n = 0; n < kLossRateHistSize; n++) {
+        lossRateHist[n] = 0.0f;
+    }
+    lossRateHistPtr = 0;
+}
+
+void ScreamTx::Statistics::add(float rateTx, float rateLost, float rtt, float queueDelay) {
+    const float alpha = 0.98f;
+    sumRateTx += rateTx;
+    sumRateLost += rateLost;
+    if (avgRateTx == 0.0f) {
+        avgRateTx = rateTx;
+        avgRtt = rtt;
+        avgQueueDelay = queueDelay;
+    }
+    else {
+        avgRateTx = alpha*avgRateTx + (1.0f - alpha)*rateTx;
+        rateLostAcc += rateLost;
+        rateLostN++;
+        if (rateLostN == 10) {
+            rateLostAcc /= 10;
+            rateLostN = 0;
+            float lossRate = 0.0f;
+            if (rateTx > 0)
+                lossRate = rateLostAcc / rateTx*100.0f;
+            lossRateHist[lossRateHistPtr] = lossRate;
+            lossRateHistPtr = (lossRateHistPtr + 1) % kLossRateHistSize;
+        }
+        avgRtt = alpha*avgRtt + (1.0f - alpha)*rtt;
+        avgQueueDelay = alpha*avgQueueDelay + (1.0f - alpha)*queueDelay;
+    }
+}
+
+void ScreamTx::Statistics::getSummary(float time, char s[]) {
+    float lossRate = 0.0f;
+    for (int n = 0; n < kLossRateHistSize; n++)
+        lossRate += lossRateHist[n];
+    lossRate /= kLossRateHistSize;
+    float lossRateLong = 0.0f;
+    if (sumRateTx > 100000.0f) {
+        lossRateLong = sumRateLost / sumRateTx*100.0f;
+    }
+    sprintf(s, "%5.1f  Transmit rate = %5.0fkbps, PLR = %5.2f%%(%5.2f%%), RTT = %5.3fs, Queue delay = %5.3fs",
+        time,
+        avgRateTx / 1000.0f,
+        lossRate,
+        lossRateLong,
+        avgRtt,
+        avgQueueDelay);
+}
+
+/*
+* Register new stream
+*/
+void ScreamTx::registerNewStream(RtpQueueIface *rtpQueue,
+    uint32_t ssrc,
+    float priority,
+    float minBitrate,
+    float startBitrate,
+    float maxBitrate,
+    float rampUpSpeed,
+    float maxRtpQueueDelay,
+    float txQueueSizeFactor,
+    float queueDelayGuard,
+    float lossEventRateScale,
+    float ecnCeEventRateScale) {
+    Stream *stream = new Stream(this,
+        rtpQueue,
+        ssrc,
+        priority,
+        minBitrate,
+        startBitrate,
+        maxBitrate,
+        rampUpSpeed,
+        maxRtpQueueDelay,
+        txQueueSizeFactor,
+        queueDelayGuard,
+        lossEventRateScale,
+        ecnCeEventRateScale);
+    streams[nStreams++] = stream;
+}
+
+void ScreamTx::updateBitrateStream(uint32_t ssrc,
+    float minBitrate,
+    float maxBitrate) {
+    Stream *stream = getStream(ssrc);
+    stream->minBitrate = minBitrate;
+    stream->maxBitrate = maxBitrate;
+}
+
+RtpQueueIface * ScreamTx::getStreamQueue(uint32_t ssrc) {
+    Stream* stream = getStream(ssrc);
+    return stream->rtpQueue;
+}
+
+
+/*
+* New media frame
+*/
+void ScreamTx::newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp) {
+    if (!isInitialized) initialize(time_us);
+
+    Stream *stream = getStream(ssrc);
+    stream->updateTargetBitrate(time_us);
+    if (time_us - lastCwndUpdateT_us < 500000) {
+        /*
+        * We expect feedback at least every 500ms
+        * to update the target rate.
+        */
+        stream->updateTargetBitrate(time_us);
+    }
+    if (time_us - lastBaseDelayRefreshT_us < sRtt_us * 2) {
+        /*
+        * _Very_ long periods of congestion can cause the base delay to increase
+        * with the effect that the queue delay is estimated wrong, therefore we seek to
+        * refresh the whole thing by deliberately allowing the network queue to drain
+        * Clear the RTP queue for 2 RTTs, this will allow the queue to drain so that we
+        * get a good estimate for the min queue delay.
+        * This funtion is executed very seldom so it should not affect overall experience too much
+        */
+        stream->rtpQueue->clear();
+    }
+    else {
+        stream->bytesRtp += bytesRtp;
+        /*
+        * Need to update MSS here, otherwise it will be nearly impossible to
+        * transmit video packets, this because of the small initial MSS
+        * which is necessary to make SCReAM work with audio only
+        */
+        int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp();
+        mss = std::max(mss, sizeOfNextRtp);
+        if (!openWindow)
+            cwndMin = 2 * mss;
+        cwnd = max(cwnd, cwndMin);
+    }
+}
+
+/*
+* Determine if OK to transmit RTP packet
+*/
+float ScreamTx::isOkToTransmit(uint64_t time_us, uint32_t &ssrc) {
+    if (!isInitialized) initialize(time_us);
+    /*
+    * Update rateTransmitted and rateAcked if time for it
+    * This is used in video rate computation
+    * The update interval is doubled at very low bitrates,
+    * the reason is that the feedback interval is very low then and
+    * a longer window is needed to avoid aliasing effects
+    */
+    uint64_t tmp = kRateUpdateInterval_us;
+
+    if (rateAcked < 50000.0f) {
+        tmp *= 2;
+    }
+
+    if (time_us - lastRateUpdateT_us > tmp) {
+        rateTransmitted = 0.0;
+        rateAcked = 0.0;
+        for (int n = 0; n < nStreams; n++) {
+            streams[n]->updateRate(time_us);
+            rateTransmitted += streams[n]->rateTransmitted;
+            rateTransmittedAvg = 0.9*rateTransmittedAvg + 0.1*rateTransmitted;
+            rateAcked += streams[n]->rateAcked;
+            if (n == 0)
+                statistics->add(streams[0]->rateTransmitted, streams[0]->rateLost, sRtt, queueDelay);
+        }
+        lastRateUpdateT_us = time_us;
+        /*
+        * Adjust stream priorities
+        */
+        adjustPriorities(time_us);
+
+        /*
+        * Update maxRate
+        */
+        maxRate = 0.0f;
+        for (int n = 0; n < nStreams; n++)
+            maxRate += streams[n]->getMaxRate();
+    }
+
+    /*
+    * Get index to the prioritized RTP queue
+    */
+    Stream* stream = getPrioritizedStream(time_us);
+
+    if (stream == NULL)
+        /*
+        * No RTP packets to transmit
+        */
+        return -1.0f;
+    ssrc = stream->ssrc;
+
+    bytesInFlightMaxHi = std::max(bytesInFlight, bytesInFlightMaxHi);
+
+    /*
+    * Update bytes in flight history for congestion window validation
+    */
+    if (time_us - lastBytesInFlightT_us > kBytesInFlightHistInterval_us) {
+        bytesInFlightMaxLo = 0;
+        if (nAccBytesInFlightMax > 0) {
+            bytesInFlightMaxLo = accBytesInFlightMax / nAccBytesInFlightMax;
+        }
+        bytesInFlightHistLo[bytesInFlightHistPtr] = bytesInFlightMaxLo;
+        bytesInFlightHistHi[bytesInFlightHistPtr] = bytesInFlightMaxHi;
+        bytesInFlightHistPtr = (bytesInFlightHistPtr + 1) % bytesInFlightHistSize;
+        lastBytesInFlightT_us = time_us;
+        accBytesInFlightMax = 0;
+        nAccBytesInFlightMax = 0;
+        bytesInFlightMaxHi = 0;
+        bytesInFlightHistLoMem = 0;
+        bytesInFlightHistHiMem = 0;
+        for (int n = 0; n < bytesInFlightHistSize; n++) {
+            bytesInFlightHistLoMem = std::max(bytesInFlightHistLoMem, bytesInFlightHistLo[n]);
+            bytesInFlightHistHiMem = std::max(bytesInFlightHistHiMem, bytesInFlightHistHi[n]);
+        }
+
+        /*
+        * In addition, reset MSS, this is useful in case for instance
+        * a video stream is put on hold, leaving only audio packets to be
+        * transmitted
+        */
+        mss = kInitMss;
+        if (!openWindow)
+            cwndMin = kMinCwndMss * mss;
+        cwnd = max(cwnd, cwndMin);
+    }
+
+    int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp();
+    if (sizeOfNextRtp == -1){
+        return -1.0f;
+    }
+    /*
+    * Determine if window is large enough to transmit
+    * an RTP packet
+    */
+    bool exit = false;
+    if (queueDelay < queueDelayTarget)
+        exit = (bytesInFlight + sizeOfNextRtp) > cwnd + mss;
+    else
+        exit = (bytesInFlight + sizeOfNextRtp) > cwnd;
+    /*
+    * Enforce packet pacing
+    */
+    float retVal = 0.0f;
+    if (kEnablePacketPacing && nextTransmitT_us > time_us){
+        retVal = (nextTransmitT_us - time_us) * 1e-6f;
+    }
+
+    /*
+    * A retransmission time out mechanism to avoid deadlock
+    */
+    if (time_us - lastTransmitT_us > 500000 && lastTransmitT_us < time_us) { // 200ms
+        for (int n = 0; n < kMaxTxPackets; n++) {
+            stream->txPackets[n].isUsed = false;
+        }
+        bytesInFlight = 0;
+        exit = false;
+        retVal = 0.0f;
+    }
+
+    if (!exit) {
+        /*
+        * Return value 0.0 = RTP packet can be immediately transmitted
+        */
+        return retVal;
+    }
+
+    return -1.0f;
+}
+
+/*
+* RTP packet transmitted
+*/
+float ScreamTx::addTransmitted(uint64_t time_us,
+    uint32_t ssrc,
+    int size,
+    uint16_t seqNr) {
+    if (!isInitialized)
+        initialize(time_us);
+
+    Stream *stream = getStream(ssrc);
+
+    int ix = seqNr % kMaxTxPackets;
+    Transmitted *txPacket = &(stream->txPackets[ix]);
+    if (txPacket->isUsed) {
+        /*
+        * This event should occur quite rarely.
+        * The most likely reason is that thoughput has dropped
+        * considerably.
+        * Therefore we clean the list and set cwnd and bitrate low
+        */
+        for (int n = 0; n < kMaxTxPackets; n++) {
+            stream->txPackets[n].isUsed = false;
+        }
+        bytesInFlight = 0;//-= txPacket->size;
+        cwnd = cwndMin;
+        stream->targetBitrate = stream->minBitrate;
+    }
+    stream->hiSeqTx = seqNr;
+    txPacket->timestamp = (uint32_t)(time_us / 1000);
+    txPacket->timeTx_us = time_us;
+    txPacket->size = size;
+    txPacket->seqNr = seqNr;
+    txPacket->isUsed = true;
+    txPacket->isAcked = false;
+    txPacket->isAfterReceivedEdge = false;
+
+    /*
+    * Update bytesInFlight
+    */
+    bytesInFlight += size;
+    bytesInFlightLog = std::max(bytesInFlightLog, bytesInFlight);
+
+    stream->bytesTransmitted += size;
+    lastTransmitT_us = time_us;
+    /*
+    * Add credit to unserved streams
+    */
+    addCredit(time_us, stream, size);
+    /*
+    * Reduce used credit for served stream
+    */
+    subtractCredit(time_us, stream, size);
+
+    /*
+    * Update MSS and cwndMin
+    */
+    mss = std::max(mss, size);
+    if (!openWindow)
+        cwndMin = 2 * mss;
+    cwnd = max(cwnd, cwndMin);
+
+    /*
+    * Determine when next RTP packet can be transmitted
+    */
+    if (kEnablePacketPacing)
+        nextTransmitT_us = time_us + paceInterval_us;
+    else
+        nextTransmitT_us = time_us;
+
+    return paceInterval;
+}
+
+/*
+* Parse feedback according to the format below. It is up to the
+* wrapper application this RTCP from a compound RTCP if needed
+* BT = 255, means that this is experimental use.
+* The code currently only handles one SSRC source per IP packet
+*
+* 0                   1                   2                   3
+* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |V=2|P|reserved |   PT=XR=207   |           length=6            |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                              SSRC                             |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |     BT=255    |    reserved   |         block length=4        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                        SSRC of source                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b0-31)                        |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                     Ack vector (b32-63)                       |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+* |                    Timestamp (32bits)                         |
+* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+*/
+void ScreamTx::incomingFeedback(uint64_t time_us,
+    unsigned char* buf,
+    int size) {
+    if (!(size == 32 && buf[0] == 0x80 && buf[1] == 207 && buf[8] == 255)) {
+        // This does not seem as a valid size, exit function
+        return;
+    }
+    uint32_t tmp_l_1;
+    uint16_t tmp_s;
+    uint32_t tmp_l_2;
+    uint32_t timeStamp;
+    uint16_t seqNr;
+    uint64_t ackVector;
+    uint16_t ecnCeMarkedBytes;
+    uint32_t ssrc;
+    uint16_t rawSeq;
+    memcpy(&tmp_l_1, buf + 12, 4);
+    ssrc = ntohl(tmp_l_1);
+    memcpy(&seqNr, buf + 16, 2);
+    seqNr = ntohs(seqNr);
+    memcpy(&ecnCeMarkedBytes, buf + 18, 2);
+    ecnCeMarkedBytes = ntohs(ecnCeMarkedBytes);
+    memcpy(&tmp_l_1, buf + 20, 4);
+    memcpy(&tmp_l_2, buf + 24, 4);
+    tmp_l_1 = ntohl(tmp_l_1);
+    tmp_l_2 = ntohl(tmp_l_2);
+    ackVector = ((uint64_t(tmp_l_1)) << 32) | tmp_l_2;
+    memcpy(&timeStamp, buf + 28, 4);
+    timeStamp = ntohl(timeStamp);
+    incomingFeedback(time_us, ssrc, timeStamp, seqNr, ackVector, ecnCeMarkedBytes);
+}
+/*
+* New incoming feedback
+*/
+void ScreamTx::incomingFeedback(uint64_t time_us,
+    uint32_t ssrc,
+    uint32_t timestamp,
+    uint16_t highestSeqNr,
+    uint64_t ackVector,
+    uint16_t ecnCeMarkedBytes) {
+
+    if (!isInitialized) initialize(time_us);
+    Stream *stream = getStream(ssrc);
+    if (stream == 0) {
+        // Bogus RTCP?, the SSRC is wrong anyway, Skip
+        return;
+    }
+
+    uint16_t diff = highestSeqNr - stream->hiSeqAck;
+    if (diff > 65000 && stream->hiSeqAck != 0 && stream->timeTxAck_us != 0) {
+        /*
+        * Out of order received ACKs are ignored
+        */
+        return;
+    }
+    accBytesInFlightMax += bytesInFlight;
+    nAccBytesInFlightMax++;
+    Transmitted *txPackets = stream->txPackets;
+    /*
+    * Mark received packets, given by the ACK vector
+    */
+    markAcked(time_us, txPackets, highestSeqNr, ackVector, timestamp, stream);
+
+    /*
+    * Detect lost pakcets
+    */
+    detectLoss(time_us, txPackets, highestSeqNr, stream);
+
+    if (ecnCeMarkedBytes != stream->ecnCeMarkedBytes && time_us - lastLossEventT_us > sRtt_us) {
+        ecnCeEvent = true;
+        lastLossEventT_us = time_us;
+    }
+
+    if (isL4s) {
+        /*
+        * L4S mode compute a congestion scaling factor that is dependent on the fraction 
+        *  of ECN marked packets
+        */
+        uint16_t marked = ecnCeMarkedBytes - stream->ecnCeMarkedBytes;
+        bytesMarkedThisRtt += marked;
+        bytesDeliveredThisRtt += bytesNewlyAcked;
+        if (lastL4sAlphaUpdateT_us - time_us > sRtt_us) {
+            lastL4sAlphaUpdateT_us = time_us;
+            if (bytesDeliveredThisRtt > 0) {
+                float F = float(bytesMarkedThisRtt) / float(bytesDeliveredThisRtt);
+                l4sAlpha = kL4sG*F + (1.0f - kL4sG)*l4sAlpha;
+                bytesDeliveredThisRtt = 0;
+                bytesMarkedThisRtt = 0;
+            }
+        }
+    }
+
+    stream->ecnCeMarkedBytes = ecnCeMarkedBytes;
+
+    if (lossEvent || ecnCeEvent) {
+        lastLossEventT_us = time_us;
+        for (int n = 0; n < nStreams; n++) {
+            Stream *tmp = streams[n];
+            if (lossEvent)
+                tmp->lossEventFlag = true;
+            else
+                tmp->ecnCeEventFlag = true;
+        }
+    }
+
+    if (lastCwndUpdateT_us == 0)
+        lastCwndUpdateT_us = time_us;
+
+    if (time_us - lastCwndUpdateT_us > 10000) {
+        /*
+        * There is no gain with a too frequent CWND update
+        * An update every 10ms is fast enough even at very high high bitrates
+        */
+        updateCwnd(time_us);
+        lastCwndUpdateT_us = time_us;
+    }
+}
+
+/*
+*  Mark ACKed RTP packets
+*/
+void ScreamTx::markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream) {
+    /*
+    * Loop only through the packets that are covered by the last highest ACK, this saves complexity
+    */
+    int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets;
+    int ix0 = stream->hiSeqAck + 1;
+    if (ix0 < 0) ix0 += kMaxTxPackets;
+    while (ix1 < ix0)
+        ix1 += kMaxTxPackets;
+    for (int m = ix0; m <= ix1; m++) {
+        int n = m % kMaxTxPackets;
+        /*
+        * Loop through TX packets
+        */
+        if (txPackets[n].isUsed) {
+            /*
+            * RTP packet is in flight
+            */
+            Transmitted *tmp = &txPackets[n];
+
+            /*
+            * Compute SN difference
+            */
+            uint16_t diff = highestSeqNr - tmp->seqNr;
+            diff -= 1;
+
+            if (diff <= kAckVectorBits) {
+                if (ackVector & (INT64_C(1) << diff)) {
+                    /*
+                    * SN marked as received
+                    */
+                    tmp->isAcked = true;
+                }
+            }
+
+            /*
+            * Receiption of packet given by highestSeqNr
+            */
+            if (tmp->seqNr == highestSeqNr) {
+                tmp->isAcked = true;
+                ackedOwd = timestamp - tmp->timestamp;
+                /*
+                * Compute the queue delay
+                */
+                uint32_t qDel = estimateOwd(time_us);
+                qDel -= getBaseOwd();
+
+                /*
+                * Convert from [jiffy] OWD to an OWD in [s]
+                */
+                queueDelay = qDel / kTimestampRate;
+
+                uint64_t rtt = time_us - tmp->timeTx_us;
+
+                sRttSh_us = (7 * sRttSh_us + rtt) / 8;
+                if (time_us - lastSRttUpdateT_us > sRttSh_us) {
+                    sRtt_us = (7 * sRtt_us + sRttSh_us) / 8;
+                    lastSRttUpdateT_us = time_us;
+                    sRtt = sRtt_us*1e-6f;
+                }
+                stream->timeTxAck_us = tmp->timeTx_us;
+            }
+        }
+    }
+}
+
+/*
+* Detect lost RTP packets
+*/
+void ScreamTx::detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream) {
+    /*
+    * Loop only through the packets that are covered by the last highest ACK, this saves complexity
+    * There is a faint possibility that we miss to detect large bursts of lost packets with this fix
+    */
+    int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets;
+    int ix0 = stream->hiSeqAck + 1;
+    stream->hiSeqAck = highestSeqNr;
+    if (ix0 < 0) ix0 += kMaxTxPackets;
+    while (ix1 < ix0)
+        ix1 += kMaxTxPackets;
+
+    /*
+    * Mark packets outside the 64 bit ACK vector range as forever lost
+    */
+    if (stream->lastLossDetectIx >= 0) {
+        int ix0_ = ix0;
+        if (stream->lastLossDetectIx > ix0_) ix0_ += kMaxTxPackets;
+        for (int m = stream->lastLossDetectIx; m < ix0_; m++) {
+            int n = m % kMaxTxPackets;
+            if (txPackets[n].isUsed) {
+                Transmitted *tmp = &txPackets[n];
+                if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) {
+                    lossEvent = true;
+                }
+                stream->bytesLost += tmp->size;
+                tmp->isUsed = false;
+                stream->repairLoss = true;
+            }
+        }
+    }
+    stream->lastLossDetectIx = ix0;
+
+    /*
+    * Mark late packets as lost
+    */
+    for (int m = ix0; m <= ix1; m++) {
+        int n = m % kMaxTxPackets;
+        /*
+        * Loop through TX packets
+        */
+        if (txPackets[n].isUsed) {
+            Transmitted *tmp = &txPackets[n];
+            /*
+            * RTP packet is in flight
+            */
+            /*
+            * Wrap-around safety net
+            */
+            uint32_t seqNrExt = tmp->seqNr;
+            uint32_t highestSeqNrExt = highestSeqNr;
+            if (seqNrExt < highestSeqNrExt && highestSeqNrExt - seqNrExt > 20000)
+                seqNrExt += 65536;
+            else if (seqNrExt > highestSeqNrExt && seqNrExt - highestSeqNrExt > 20000)
+                highestSeqNrExt += 65536;
+
+            /*
+            * RTP packets with a sequence number lower
+            * than or equal to the highest received sequence number
+            * are treated as received even though they are not
+            * This advances the send window, similar to what
+            * SACK does in TCP
+            */
+            if (seqNrExt <= highestSeqNrExt && tmp->isAfterReceivedEdge == false) {
+                bytesNewlyAcked += tmp->size;
+                bytesInFlight -= tmp->size;
+                if (bytesInFlight < 0)
+                    bytesInFlight = 0;
+                stream->bytesAcked += tmp->size;
+                tmp->isAfterReceivedEdge = true;
+            }
+
+            if (tmp->timeTx_us + kReorderTime_us < stream->timeTxAck_us && !tmp->isAcked) {
+                /*
+                * Packet ACK is delayed more than kReorderTime_us after an ACK of a higher SN packet
+                * raise a loss event and remove from TX list
+                */
+                if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) {
+                    lossEvent = true;
+                }
+                stream->bytesLost += tmp->size;
+                tmp->isUsed = false;
+                stream->repairLoss = true;
+            }
+            else if (tmp->isAcked) {
+                tmp->isUsed = false;
+            }
+        }
+    }
+
+}
+
+float ScreamTx::getTargetBitrate(uint32_t ssrc) {
+    return  getStream(ssrc)->getTargetBitrate();
+}
+
+void ScreamTx::setTargetPriority(uint32_t ssrc, float priority) {
+    Stream *stream = getStream(ssrc);
+    if (queueDelayTrend > 0.02) {
+        stream->targetBitrate *= priority / stream->targetPriority;
+        stream->targetBitrate = std::min(std::max(stream->targetBitrate, stream->minBitrate), stream->maxBitrate);
+    }
+    stream->targetPriority = priority;
+    stream->targetPriorityInv = 1.0f / priority;
+}
+
+void ScreamTx::getLog(float time, char *s) {
+    int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem);
+    sprintf(s, "%4.3f, %4.3f, %4.3f, %4.3f, %6d, %6d, %6.0f, %1d, ",
+        queueDelay, queueDelayMax, queueDelayMinAvg, sRtt,
+        cwnd, bytesInFlightLog, rateTransmitted / 1000.0f, isInFastStart());
+    bytesInFlightLog = bytesInFlight;
+    queueDelayMax = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        char s2[200];
+        sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %6.0f, %5.0f, %5d, ",
+            std::max(0.0f, tmp->rtpQueue->getDelay(time)),
+            tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f,
+            tmp->rateTransmitted / 1000.0f, tmp->rateAcked / 1000.0f,
+            tmp->rateLost / 1000.0f,
+            tmp->hiSeqAck);
+        strcat(s, s2);
+    }
+}
+
+void ScreamTx::getShortLog(float time, char *s) {
+    int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem);
+    sprintf(s, "%4.3f, %4.3f, %6d, %6d, %6.0f, ",
+        queueDelayMax, sRtt,
+        cwnd, bytesInFlightLog, rateTransmitted / 1000.0f);
+    bytesInFlightLog = bytesInFlight;
+    queueDelayMax = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        char s2[200];
+        sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %5.0f, ",
+            std::max(0.0f, tmp->rtpQueue->getDelay(time)),
+            tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f,
+            tmp->rateTransmitted / 1000.0f,
+            tmp->rateLost / 1000.0f);
+        strcat(s, s2);
+    }
+}
+
+void ScreamTx::getStatistics(float time, char *s) {
+    statistics->getSummary(time, s);
+}
+
+void ScreamTx::initialize(uint64_t time_us) {
+    isInitialized = true;
+    lastSRttUpdateT_us = time_us;
+    lastBaseOwdAddT_us = time_us;
+    baseOwdResetT_us = time_us;
+    lastAddToQueueDelayFractionHistT_us = time_us;
+    lastLossEventT_us = time_us;
+    lastTransmitT_us = time_us;
+    nextTransmitT_us = time_us;
+    lastRateUpdateT_us = time_us;
+    lastAdjustPrioritiesT_us = time_us;
+    lastRttT_us = time_us;
+    lastBaseDelayRefreshT_us = time_us + 1000000;
+    lastL4sAlphaUpdateT_us = time_us;
+    initTime_us = time_us;
+}
+
+/*
+* Update the  congestion window
+*/
+void ScreamTx::updateCwnd(uint64_t time_us) {
+    float dT = 0.001;
+    if (lastCwndUpdateT_us == 0)
+        lastCwndUpdateT_us = time_us;
+    else
+        dT = (time_us - lastCwndUpdateT_us) * 1e-6f;
+
+    /*
+    * This adds a limit to how much the CWND can grow, it is particularly useful
+    * in case of short gliches in the transmission, in which a large chunk of data is delivered
+    * in a burst with the effect that the estimated queue delay is low because it typically depict the queue
+    * delay for the last non-delayed RTP packet. The rule is that the CWND cannot grow faster
+    * than the 1.25 times the average amount of bytes that transmitted in the given feedback interval
+    */
+    float bytesNewlyAckedLimited = bytesNewlyAcked;
+    if (maxRate > 1.0e5f)
+        bytesNewlyAckedLimited = std::min(bytesNewlyAckedLimited, 1.25f*maxRate*dT / 8.0f);
+    else
+        bytesNewlyAckedLimited = 2.0f*mss;
+
+    queueDelayMin = std::min(queueDelayMin, queueDelay);
+
+    queueDelayMax = std::max(queueDelayMax, queueDelay);
+
+    float time = time_us*1e-6;
+    if (queueDelayMinAvg > 0.25f*queueDelayTarget && time_us - baseOwdResetT_us > 20000000) {
+        /*
+        * The base OWD is likely wrong, for instance due to
+        * a channel change or clock drift, reset base OWD history
+        */
+        queueDelayMinAvg = 0.0f;
+        queueDelay = 0.0f;
+        for (int n = 0; n < kBaseOwdHistSize; n++)
+            baseOwdHist[n] = UINT32_MAX;
+        baseOwd = UINT32_MAX;
+        baseOwdHistMin = UINT32_MAX;
+        baseOwdResetT_us = time_us;
+    }
+    /*
+    * An averaged version of the queue delay fraction
+    * neceassary in order to make video rate control robust
+    * against jitter
+    */
+    queueDelayFractionAvg = 0.9f*queueDelayFractionAvg + 0.1f*getQueueDelayFraction();
+
+    /*
+    * Less frequent updates here
+    * + Compute pacing interval
+    * + Save to queue delay fraction history
+    *   used in computeQueueDelayTrend()
+    * + Update queueDelayTarget
+    */
+    if ((time_us - lastAddToQueueDelayFractionHistT_us) >
+        kQueueDelayFractionHistInterval_us) {
+
+        /*
+        * compute paceInterval, we assume a min bw of 50kbps and a min tp of 1ms
+        * for stable operation
+        * this function implements the packet pacing
+        */
+        paceInterval = kMinPaceInterval;
+        if ((queueDelayFractionAvg > 0.02f || isL4s) && kEnablePacketPacing) {
+            /*
+            * The cautiousPacing parameter restricts transmission of large key frames when the parameter is set to a value closer to 1.0
+            */
+            float pacingBitrate = (1.0 - cautiousPacing)*cwnd * 8.0f / std::max(0.001f, sRtt) + cautiousPacing*rateTransmittedAvg;
+            pacingBitrate = kPacketPacingHeadRoom*std::max(kMinimumBandwidth, pacingBitrate);
+            float tp = (mss * 8.0f) / pacingBitrate;
+            paceInterval = std::max(kMinPaceInterval, tp);
+        }
+        paceInterval_us = (uint64_t)(paceInterval * 1000000);
+
+        if (queueDelayMin < queueDelayMinAvg)
+            queueDelayMinAvg = queueDelayMin;
+        else
+            queueDelayMinAvg = 0.001f*queueDelayMin + 0.999f*queueDelayMinAvg;
+        queueDelayMin = 1000.0f;
+        /*
+        * Need to duplicate insertion incase the feedback is sparse
+        */
+        int nIter = (int)(time_us - lastAddToQueueDelayFractionHistT_us) / kQueueDelayFractionHistInterval_us;
+        for (int n = 0; n < nIter; n++) {
+            queueDelayFractionHist[queueDelayFractionHistPtr] = getQueueDelayFraction();
+            queueDelayFractionHistPtr = (queueDelayFractionHistPtr + 1) % kQueueDelayFractionHistSize;
+        }
+
+        if (time_us - initTime_us > 2000000) {
+            /*
+            * Queue delay trend calculations are reliable after ~2s
+            */
+            computeQueueDelayTrend();
+        }
+
+        queueDelayTrendMem = std::max(queueDelayTrendMem*0.98f, queueDelayTrend);
+
+        /*
+        * Compute bytes in flight limitation
+        */
+        int maxBytesInFlightHi = (int)(std::max(bytesInFlightMaxHi, bytesInFlightHistHiMem));
+        int maxBytesInFlightLo = (int)(std::max(bytesInFlight, bytesInFlightHistLoMem));
+
+        float alpha = std::max(queueDelayTrend, cautiousPacing);
+        maxBytesInFlight =
+                (maxBytesInFlightHi*(1.0f - alpha) + maxBytesInFlightLo*alpha)*
+                kMaxBytesInFlightHeadRoom;
+        if (enableSbd) {
+            /*
+            * Shared bottleneck detection,
+            */
+            float queueDelayNorm = queueDelay / queueDelayTargetMin;
+            queueDelayNormHist[queueDelayNormHistPtr] = queueDelayNorm;
+            queueDelayNormHistPtr = (queueDelayNormHistPtr + 1) % kQueueDelayNormHistSize;
+            /*
+            * Compute shared bottleneck detection and update queue delay target
+            * if queue dela variance is sufficienctly low
+            */
+            computeSbd();
+            /*
+            * This function avoids the adjustment of queueDelayTarget when
+            * congestion occurs (indicated by high queueDelaydSbdVar and queueDelaySbdSkew)
+            */
+            float oh = queueDelayTargetMin*(queueDelaySbdMeanSh + sqrt(queueDelaySbdVar));
+            if (lossEventRate > 0.002 && queueDelaySbdMeanSh > 0.5 && queueDelaySbdVar < 0.2) {
+                queueDelayTarget = std::min(kQueueDelayTargetMax, oh*1.5f);
+            }
+            else {
+                if (queueDelaySbdVar < 0.2 && queueDelaySbdSkew < 0.05) {
+                    queueDelayTarget = std::max(queueDelayTargetMin, std::min(kQueueDelayTargetMax, oh));
+                }
+                else {
+                    if (oh < queueDelayTarget)
+                        queueDelayTarget = std::max(queueDelayTargetMin, std::max(queueDelayTarget*0.99f, oh));
+                    else
+                        queueDelayTarget = std::max(queueDelayTargetMin, queueDelayTarget*0.999f);
+                }
+            }
+        }
+        lastAddToQueueDelayFractionHistT_us = time_us;
+    }
+    /*
+    * offTarget is a normalized deviation from the queue delay target
+    */
+    float offTarget = (queueDelayTarget - queueDelay) / float(queueDelayTarget);
+
+    if (lossEvent) {
+        /*
+        * loss event detected, decrease congestion window
+        */
+        cwnd = std::max(cwndMin, (int)(lossBeta*cwnd));
+        lossEvent = false;
+        lastCongestionDetectedT_us = time_us;
+
+        inFastStart = false;
+        wasLossEvent = true;
+    }
+    else if (ecnCeEvent) {
+        /*
+        * loss event detected, decrease congestion window
+        */
+        if (isL4s) {
+            cwnd = std::max(cwndMin, (int)((1.0f - l4sAlpha / 2.0f)*cwnd));
+        }
+        else {
+            cwnd = std::max(cwndMin, (int)(ecnCeBeta*cwnd));
+        }
+        ecnCeEvent = false;
+        lastCongestionDetectedT_us = time_us;
+
+        inFastStart = false;
+        wasLossEvent = true;
+    }
+    else {
+
+        if (time_us - lastRttT_us > sRtt_us) {
+            if (wasLossEvent)
+                lossEventRate = 0.99f*lossEventRate + 0.01f;
+            else
+                lossEventRate *= 0.99f;
+            wasLossEvent = false;
+            lastRttT_us = time_us;
+        }
+
+        if (inFastStart) {
+            /*
+            * In fast start
+            */
+            if (queueDelayTrend < 0.2) {
+                /*
+                * CWND is increased by the number of ACKed bytes if
+                * window is used to 1/1.5 = 67%
+                * We need to relax the rule a bit for the case that
+                * feedback may be sparse due to limited RTCP report interval
+                * In addition we put a limit for the cases where feedback becomes
+                * piled up (sometimes happens with e.g LTE)
+                */
+                float bytesInFlightMargin = 1.5f;
+                if (bytesInFlight*bytesInFlightMargin + bytesNewlyAcked > cwnd) {
+                    cwnd += bytesNewlyAckedLimited;
+                }
+            }
+            else {
+                inFastStart = false;
+            }
+        }
+        else {
+            if (offTarget > 0.0f) {
+                /*
+                * queue delay below target, increase CWND if window
+                * is used to 1/1.2 = 83%
+                */
+                float bytesInFlightMargin = 1.2f;
+                if (bytesInFlight*bytesInFlightMargin + bytesNewlyAcked > cwnd) {
+                    float increment = gainUp * offTarget * bytesNewlyAckedLimited * mss / cwnd;
+                    cwnd += (int)(increment + 0.5f);
+                }
+            }
+            else {
+                /*
+                * Queue delay above target.
+                * Limit the CWND reduction to at most a quarter window
+                *  this avoids unduly large reductions for the cases
+                *  where data is queued up e.g because of retransmissions
+                *  on lower protocol layers.
+                */
+                float delta = -(gainDown * offTarget * bytesNewlyAcked * mss / cwnd);
+                delta = std::min((int)delta, cwnd / 4);
+                cwnd -= (int)(delta);
+
+                /*
+                * Especially when running over low bitrate bottlenecks, it is
+                *  beneficial to reduce the target bitrate a little, it limits
+                *  possible RTP queue delay spikes when congestion window is reduced
+                */
+                float rateTotal = 0.0f;
+                for (int n = 0; n < nStreams; n++)
+                    rateTotal += streams[n]->getMaxRate();
+                if (rateTotal < 1.0e5f) {
+                    delta = delta / cwnd;
+                    float rateAdjustFactor = (1.0f - delta);
+                    for (int n = 0; n < nStreams; n++) {
+                        Stream *tmp = streams[n];
+                        tmp->targetBitrate = std::max(tmp->minBitrate,
+                            std::min(tmp->maxBitrate,
+                            tmp->targetBitrate*rateAdjustFactor));
+                    }
+                }
+                lastCongestionDetectedT_us = time_us;
+
+            }
+        }
+    }
+    /*
+    * Congestion window validation, checks that the congestion window is
+    * not considerably higher than the actual number of bytes in flight
+    */
+    if (maxBytesInFlight > 5000) {
+        cwnd = std::min(cwnd, (int)maxBytesInFlight);
+    }
+
+    if (sRtt < 0.01f && queueDelayTrend < 0.1) {
+        int tmp = int(rateTransmitted*0.01f / 8);
+        tmp = std::max(tmp, (int)(maxBytesInFlight*1.5f));
+        cwnd = std::max(cwnd, tmp);
+    }
+    cwnd = std::max(cwndMin, cwnd);
+
+    /*
+    * Make possible to enter fast start if OWD has been low for a while
+    */
+    if (queueDelayTrend > 0.2) {
+        lastCongestionDetectedT_us = time_us;
+    }
+    else if (time_us - lastCongestionDetectedT_us > 5000000 &&
+        !inFastStart && kEnableConsecutiveFastStart) {
+        /*
+        * The queue delay trend has been low for more than 5.0s, resume fast start
+        */
+        inFastStart = true;
+        lastCongestionDetectedT_us = time_us;
+    }
+    bytesNewlyAcked = 0;
+}
+
+/*
+* Update base OWD (if needed) and return the
+* last estimated OWD (without offset compensation)
+*/
+uint32_t ScreamTx::estimateOwd(uint64_t time_us) {
+    baseOwd = std::min(baseOwd, ackedOwd);
+    if (time_us - lastBaseOwdAddT_us >= kBaseDelayUpdateInterval_us) {
+        baseOwdHist[baseOwdHistPtr] = baseOwd;
+        baseOwdHistPtr = (baseOwdHistPtr + 1) % kBaseOwdHistSize;
+        lastBaseOwdAddT_us = time_us;
+        baseOwd = UINT32_MAX;
+        baseOwdHistMin = UINT32_MAX;
+        for (int n = 0; n < kBaseOwdHistSize; n++)
+            baseOwdHistMin = std::min(baseOwdHistMin, baseOwdHist[n]);
+        /*
+        * _Very_ long periods of congestion can cause the base delay to increase
+        * with the effect that the queue delay is estimated wrong, therefore we seek to
+        * refresh the whole thing by deliberately allowing the network queue to drain
+        */
+        if (time_us - lastBaseDelayRefreshT_us > kBaseDelayUpdateInterval_us*(kBaseOwdHistSize - 1)) {
+            lastBaseDelayRefreshT_us = time_us;
+        }
+    }
+    return ackedOwd;
+}
+
+/*
+* Get the base one way delay
+*/
+uint32_t ScreamTx::getBaseOwd() {
+    return  std::min(baseOwd, baseOwdHistMin);
+}
+
+/*
+* Get the queue delay fraction
+*/
+float ScreamTx::getQueueDelayFraction() {
+    return queueDelay / queueDelayTarget;
+}
+
+/*
+* Compute congestion indicator
+*/
+void ScreamTx::computeQueueDelayTrend() {
+    queueDelayTrend = 0.0;
+    int ptr = queueDelayFractionHistPtr;
+    float avg = 0.0f, x1, x2, a0, a1;
+
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++) {
+        avg += queueDelayFractionHist[ptr];
+        ptr = (ptr + 1) % kQueueDelayFractionHistSize;
+    }
+    avg /= kQueueDelayFractionHistSize;
+
+    ptr = queueDelayFractionHistPtr;
+    x2 = 0.0f;
+    a0 = 0.0f;
+    a1 = 0.0f;
+    for (int n = 0; n < kQueueDelayFractionHistSize; n++) {
+        x1 = queueDelayFractionHist[ptr] - avg;
+        a0 += x1 * x1;
+        a1 += x1 * x2;
+        x2 = x1;
+        ptr = (ptr + 1) % kQueueDelayFractionHistSize;
+    }
+    if (a0 > 0) {
+        queueDelayTrend = std::max(0.0f, std::min(1.0f, (a1 / a0)*queueDelayFractionAvg));
+    }
+}
+
+/*
+* Compute indicators of shared bottleneck
+*/
+void ScreamTx::computeSbd() {
+    float queueDelayNorm, tmp;
+    queueDelaySbdMean = 0.0;
+    queueDelaySbdMeanSh = 0.0;
+    queueDelaySbdVar = 0.0;
+    int ptr = queueDelayNormHistPtr;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++) {
+        queueDelayNorm = queueDelayNormHist[ptr];
+        queueDelaySbdMean += queueDelayNorm;
+        if (n >= kQueueDelayNormHistSize - kQueueDelayNormHistSizeSh) {
+            queueDelaySbdMeanSh += queueDelayNorm;
+        }
+        ptr = (ptr + 1) % kQueueDelayNormHistSize;
+    }
+    queueDelaySbdMean /= kQueueDelayNormHistSize;
+    queueDelaySbdMeanSh /= kQueueDelayNormHistSizeSh;
+
+    ptr = queueDelayNormHistPtr;
+    for (int n = 0; n < kQueueDelayNormHistSize; n++) {
+        queueDelayNorm = queueDelayNormHist[ptr];
+        tmp = queueDelayNorm - queueDelaySbdMean;
+        queueDelaySbdVar += tmp * tmp;
+        queueDelaySbdSkew += tmp * tmp * tmp;
+        ptr = (ptr + 1) % kQueueDelayNormHistSize;
+    }
+    queueDelaySbdVar /= kQueueDelayNormHistSize;
+    queueDelaySbdSkew /= kQueueDelayNormHistSize;
+}
+
+/*
+* true if the queueDelayTarget is increased due to
+* detected competing flows
+*/
+bool ScreamTx::isCompetingFlows() {
+    return queueDelayTarget > queueDelayTargetMin;
+}
+
+/*
+* Get queue delay trend
+*/
+float ScreamTx::getQueueDelayTrend() {
+    return queueDelayTrend;
+}
+
+/*
+* Determine active streams
+*/
+void ScreamTx::determineActiveStreams(uint64_t time_us) {
+    float surplusBitrate = 0.0f;
+    float sumPrio = 0.0;
+    bool streamSetInactive = false;
+    for (int n = 0; n < nStreams; n++) {
+        if (time_us - streams[n]->lastFrameT_us > 1000000 && streams[n]->isActive) {
+            streams[n]->isActive = false;
+            surplusBitrate += streams[n]->targetBitrate;
+            streams[n]->targetBitrate = streams[n]->minBitrate;
+            streamSetInactive = true;
+        }
+        else {
+            sumPrio += streams[n]->targetPriority;
+        }
+    }
+    if (streamSetInactive) {
+        for (int n = 0; n < nStreams; n++) {
+            if (streams[n]->isActive) {
+                streams[n]->targetBitrate = std::min(streams[n]->maxBitrate,
+                    streams[n]->targetBitrate +
+                    surplusBitrate*streams[n]->targetPriority / sumPrio);
+            }
+        }
+    }
+}
+
+/*
+* Add credit to streams that was not served
+*/
+void ScreamTx::addCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) {
+    /*
+    * Add a credit to stream(s) that did not get priority to transmit RTP packets
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return;
+    int maxCredit = 10 * mss;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        if (tmp != servedStream) {
+            int credit = (int)(transmittedBytes*tmp->targetPriority * servedStream->targetPriorityInv);
+            if (tmp->rtpQueue->sizeOfQueue() > 0) {
+                tmp->credit += credit;
+            }
+            else {
+                tmp->credit += credit;
+                if (tmp->credit > maxCredit) {
+                    tmp->creditLost += tmp->credit - maxCredit;
+                    tmp->credit = maxCredit;
+                }
+                //tmp->credit = std::min(10 * mss, tmp->credit + credit);
+            }
+        }
+    }
+}
+
+/*
+* Subtract credit from served stream
+*/
+void ScreamTx::subtractCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) {
+    /*
+    * Subtract a credit equal to the number of transmitted bytes from the stream that
+    * transmitted a packet
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return;
+    servedStream->credit = std::max(0, servedStream->credit - transmittedBytes);
+}
+ScreamTx::Stream::Stream(ScreamTx *parent_,
+    RtpQueueIface *rtpQueue_,
+    uint32_t ssrc_,
+    float priority_,
+    float minBitrate_,
+    float startBitrate_,
+    float maxBitrate_,
+    float rampUpSpeed_,
+    float maxRtpQueueDelay_,
+    float txQueueSizeFactor_,
+    float queueDelayGuard_,
+    float lossEventRateScale_,
+    float ecnCeEventRateScale_) {
+    parent = parent_;
+    rtpQueue = rtpQueue_;
+    ssrc = ssrc_;
+    targetPriority = priority_;
+    targetPriorityInv = 1.0f / targetPriority;
+    minBitrate = minBitrate_;
+    maxBitrate = maxBitrate_;
+    targetBitrate = std::min(maxBitrate, std::max(minBitrate, startBitrate_));
+    rampUpSpeed = rampUpSpeed_;
+    maxRtpQueueDelay = maxRtpQueueDelay_;
+    txQueueSizeFactor = txQueueSizeFactor_;
+    queueDelayGuard = queueDelayGuard_;
+    lossEventRateScale = lossEventRateScale_;
+    ecnCeEventRateScale = ecnCeEventRateScale_;
+    targetBitrateHistUpdateT_us = 0;
+    targetBitrateI = 1.0f;
+    credit = 0;
+    creditLost = 0;
+    bytesTransmitted = 0;
+    bytesAcked = 0;
+    bytesLost = 0;
+    hiSeqAck = 0;
+    hiSeqTx = 0;
+    rateTransmitted = 0.0f;
+    rateAcked = 0.0f;
+    rateLost = 0.0f;
+    lossEventFlag = false;
+    ecnCeEventFlag = false;
+    txSizeBitsAvg = 0.0f;
+    lastRateUpdateT_us = 0;
+    lastBitrateAdjustT_us = 0;
+    lastTargetBitrateIUpdateT_us = 0;
+    bytesRtp = 0;
+    rateRtp = 0.0f;
+    lastLossDetectIx = -1;
+    ecnCeMarkedBytes = 0;
+    timeTxAck_us = 0;
+
+    for (int n = 0; n < kRateUpDateSize; n++) {
+        rateRtpHist[n] = 0.0f;
+        rateAckedHist[n] = 0.0f;
+        rateLostHist[n] = 0.0f;
+        rateTransmittedHist[n] = 0.0f;
+    }
+    rateUpdateHistPtr = 0;
+    for (int n = 0; n < kTargetBitrateHistSize; n++) {
+        targetBitrateHist[n] = 0;
+    }
+    targetBitrateHistPtr = 0;
+    targetRateScale = 1.0;
+    isActive = false;
+    lastFrameT_us = 0;
+    initTime_us = 0;
+    rtpQueueDiscard = false;
+    lastRtpQueueDiscardT_us = 0;
+    rateLost = 0.0;
+    bytesLost = 0;
+    wasRepairLoss = false;
+    repairLoss = false;
+    for (int n = 0; n < kMaxTxPackets; n++)
+        txPackets[n].isUsed = false;
+    txPacketsPtr = 0;
+}
+
+/*
+* Update the estimated max media rate
+*/
+void ScreamTx::Stream::updateRate(uint64_t time_us) {
+    if (lastRateUpdateT_us != 0) {
+        float tDelta = (time_us - lastRateUpdateT_us) * 1e-6f;
+
+        rateTransmittedHist[rateUpdateHistPtr] = bytesTransmitted*8.0f / tDelta;
+        rateAckedHist[rateUpdateHistPtr] = bytesAcked*8.0f / tDelta;
+        rateLostHist[rateUpdateHistPtr] = bytesLost*8.0f / tDelta;
+        rateRtpHist[rateUpdateHistPtr] = bytesRtp * 8.0f / tDelta;
+        rateUpdateHistPtr = (rateUpdateHistPtr + 1) % kRateUpDateSize;
+        rateTransmitted = 0.0f;
+        rateAcked = 0.0f;
+        rateLost = 0.0f;
+        rateRtp = 0.0f;
+        for (int n = 0; n < kRateUpDateSize; n++) {
+            rateTransmitted += rateTransmittedHist[n];
+            rateAcked += rateAckedHist[n];
+            rateLost += rateLostHist[n];
+            rateRtp += rateRtpHist[n];
+        }
+        rateTransmitted /= kRateUpDateSize;
+        rateAcked /= kRateUpDateSize;
+        rateLost /= kRateUpDateSize;
+        rateRtp /= kRateUpDateSize;
+        if (rateRtp > 0) {
+            /*
+            * Video coders are strange animals.. In certain cases the average bitrate is
+            * consistently lower or higher than the target bitare. This additonal scaling compensates
+            * for this anomaly.
+            */
+            const float alpha = 0.005f;
+            targetRateScale *= (1.0f - alpha);
+            targetRateScale += alpha*targetBitrate / rateRtp;
+            targetRateScale = std::min(1.25f, std::max(0.8f, targetRateScale));
+        }
+    }
+
+    bytesTransmitted = 0;
+    bytesAcked = 0;
+    bytesRtp = 0;
+    bytesLost = 0;
+    lastRateUpdateT_us = time_us;
+}
+
+/*
+* Get the estimated maximum media rate
+*/
+float ScreamTx::Stream::getMaxRate() {
+    return std::max(rateTransmitted, rateAcked);
+}
+
+/*
+* The the stream that matches SSRC
+*/
+ScreamTx::Stream* ScreamTx::getStream(uint32_t ssrc) {
+    for (int n = 0; n < nStreams; n++) {
+        if (streams[n]->isMatch(ssrc)) {
+            return streams[n];
+        }
+    }
+    return NULL;
+}
+
+/*
+* Get the target bitrate.
+* This function returns a value -1 if loss of RTP packets is detected,
+*  either because of loss in network or RTP queue discard
+*/
+float ScreamTx::Stream::getTargetBitrate() {
+
+    bool requestRefresh = isRtpQueueDiscard() || repairLoss;
+    repairLoss = false;
+    if (requestRefresh  && !wasRepairLoss) {
+        wasRepairLoss = true;
+        return -1.0;
+    }
+    float rate = targetRateScale*targetBitrate;
+    /*
+    * Video coders are strange animals.. In certain cases a very frequent rate requests can confuse the
+    * rate control logic in the coder
+    */
+    wasRepairLoss = false;
+    return rate;
+}
+
+/*
+* A small history of past max bitrates is maintained and the max value is picked.
+* This solves a problem where consequtive rate decreases can give too low
+*  targetBitrateI values.
+*/
+void ScreamTx::Stream::updateTargetBitrateI(float br) {
+    targetBitrateHist[targetBitrateHistPtr] = std::min(br, targetBitrate);
+    targetBitrateHistPtr = (targetBitrateHistPtr + 1) % kTargetBitrateHistSize;
+    targetBitrateI = std::min(br, targetBitrate);
+    for (int n = 0; n < kTargetBitrateHistSize; n++) {
+        targetBitrateI = std::max(targetBitrateI, targetBitrateHist[n]);
+    }
+
+}
+
+/*
+* Update the target bitrate, the target bitrate includes the RTP overhead
+*/
+void ScreamTx::Stream::updateTargetBitrate(uint64_t time_us) {
+    /*
+    * Compute a maximum bitrate, this bitrates includes the RTP overhead
+    */
+    float br = getMaxRate();
+    float rateRtpLimit = br;
+    if (initTime_us == 0) {
+        /*
+        * Initialize if the first time
+        */
+        initTime_us = time_us;
+        lastRtpQueueDiscardT_us = time_us;
+    }
+
+    if (lastBitrateAdjustT_us == 0) lastBitrateAdjustT_us = time_us;
+    isActive = true;
+    lastFrameT_us = time_us;
+
+    if (lossEventFlag || ecnCeEventFlag) {
+        /*
+        * Loss event handling
+        * Rate is reduced slightly to avoid that more frames than necessary
+        * queue up in the sender queue
+        */
+        if (time_us - lastTargetBitrateIUpdateT_us > 2000000) {
+            /*
+            * The timing constraint avoids that targetBitrateI
+            *  is set too low in cases where a congestion event is prolonged.
+            * An accurate targetBitrateI is not of extreme importance
+            *  but helps to avoid jitter spikes when SCReAM operates
+            *  over fixed bandwidth or slowly varying links.
+            */
+            updateTargetBitrateI(br);
+            lastTargetBitrateIUpdateT_us = time_us;
+        }
+        if (lossEventFlag)
+            targetBitrate = std::max(minBitrate, targetBitrate*lossEventRateScale);
+        else if (ecnCeEventFlag) {
+            if (parent->isL4s) {
+                targetBitrate = std::max(minBitrate, targetBitrate*(1.0f - parent->l4sAlpha / 4.0f));
+                //updateTargetBitrateI(targetBitrate);
+            }
+            else {
+                targetBitrate = std::max(minBitrate, targetBitrate*ecnCeEventRateScale);
+            }
+        }
+        lossEventFlag = false;
+        ecnCeEventFlag = false;
+        lastBitrateAdjustT_us = time_us;
+    }
+    else {
+        if (time_us - lastBitrateAdjustT_us < kRateAdjustInterval_us)
+            return;
+        /*
+        * A scale factor that is dependent on the inflection point
+        * i.e the last known highest video bitrate
+        */
+        float sclI = (targetBitrate - targetBitrateI) / targetBitrateI;
+        sclI *= 4;
+        sclI = std::max(0.2f, std::min(1.0f, sclI*sclI));
+        float increment = 0.0f;
+
+        /*
+        * Size of RTP queue [bits]
+        * As this function is called immediately after a
+        * video frame is produced, we need to accept the new
+        * RTP packets in the queue, we subtract a number of bytes correspoding to the size
+        * of the last frame (including RTP overhead), this is simply the aggregated size
+        * of the RTP packets with the highest RTP timestamp
+        */
+        int lastBytes = rtpQueue->getSizeOfLastFrame();
+        int txSizeBits = std::max(0, rtpQueue->bytesInQueue() - lastBytes) * 8;
+
+        float alpha = 0.5f;
+
+        txSizeBitsAvg = txSizeBitsAvg*alpha + txSizeBits*(1.0f - alpha);
+        /*
+        * tmp is a local scaling factor that makes rate adaptation sligthly more
+        * aggressive when competing flows (e.g file transfers) are detected
+        */
+        float rampUpSpeedTmp = std::min(rampUpSpeed, targetBitrate*0.5f);
+        if (parent->isCompetingFlows()) {
+            rampUpSpeedTmp *= 2.0f;
+        }
+
+        float rtpQueueDelay = rtpQueue->getDelay(time_us * 1e-6f);
+        if (rtpQueueDelay > maxRtpQueueDelay &&
+            (time_us - lastRtpQueueDiscardT_us > kMinRtpQueueDiscardInterval_us)) {
+            /*
+            * RTP queue is cleared as it is becoming too large,
+            * Function is however disabled initially as there is no reliable estimate of the
+            * throughput in the initial phase.
+            */
+            rtpQueue->clear();
+
+            rtpQueueDiscard = true;
+
+            lastRtpQueueDiscardT_us = time_us;
+            targetRateScale = 1.0;
+            txSizeBitsAvg = 0.0f;
+        }
+        else if (parent->inFastStart && rtpQueueDelay < 0.1f) {
+            /*
+            * Increment bitrate, limited by the rampUpSpeed
+            */
+            increment = rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6f);
+            /*
+            * Limit increase rate near the last known highest bitrate or if priority is low
+            */
+            increment *= sclI*sqrt(targetPriority);
+            /*
+            * No increase if the actual coder rate is lower than the target
+            */
+            if (targetBitrate > rateRtpLimit*1.5f)
+                increment = 0;
+            /*
+            * Add increment
+            */
+            targetBitrate += increment;
+            wasFastStart = true;
+        }
+        else {
+            if (wasFastStart) {
+                wasFastStart = false;
+                if (time_us - lastTargetBitrateIUpdateT_us > 2000000) {
+                    /*
+                    * The timing constraint avoids that targetBitrateI
+                    * is set too low in cases where a
+                    * congestion event is prolonged
+                    */
+                    updateTargetBitrateI(br);
+                    lastTargetBitrateIUpdateT_us = time_us;
+                }
+            }
+
+            /*
+            * Update target rate
+            * At very low bitrates it is necessary to actively try to push the
+            *  the bitrate up some extra
+            */
+            float incrementScale = 1.0f + 0.05f*std::min(1.0f, 50000.0f / targetBitrate);
+
+            float increment = incrementScale*br;
+            if (!parent->isL4s || parent->l4sAlpha < 0.001) {
+                /*
+                * Apply the extra precaution with respect to queue delay and 
+                * RTP queue only if L4S is not running or when ECN marking does not occur for a longer period
+                * scl is based on the queue delay trend
+                */
+                float scl = queueDelayGuard*parent->getQueueDelayTrend();
+                if (parent->isCompetingFlows())
+                    scl *= 0.05f;
+                increment = increment*(1.0f - scl) - txQueueSizeFactor*txSizeBitsAvg;
+            }
+            increment -= targetBitrate;
+            if (txSizeBits > 12000 && increment > 0)
+                    increment = 0;
+
+            if (increment > 0) {
+                wasFastStart = true;
+                if (!parent->isCompetingFlows()) {
+                    /*
+                    * Limit the bitrate increase so that it does not go faster than rampUpSpeedTmp
+                    * This limitation is not in effect if competing flows are detected
+                    */
+                    increment *= sclI;
+                    increment = std::min(increment, (float)(rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6)));
+                }
+                if (targetBitrate > rateRtpLimit*1.5f) {
+                    /*
+                    * Limit increase if the target bitrate is considerably higher than the actual 
+                    *  bitrate, this is an indication of an idle source.
+                    */
+                    increment = 0;
+                }
+            }
+            else {
+                /*
+                * Avoid that the target bitrate is reduced if it actually is the media
+                * coder that limits the output rate e.g due to inactivity
+                */
+                if (rateRtp < targetBitrate*0.8f)
+                    increment = 0.0f;
+                /*
+                * Also avoid that the target bitrate is reduced if
+                * the coder bitrate is higher
+                * than the target.
+                * The possible reason is that a large I frame is transmitted, another reason is
+                * complex dynamic content.
+                */
+                if (rateRtp > targetBitrate*2.0f)
+                    increment = 0.0f;
+            }
+            targetBitrate += increment;
+
+        }
+        lastBitrateAdjustT_us = time_us;
+    }
+
+    targetBitrate = std::min(maxBitrate, std::max(minBitrate, targetBitrate));
+}
+
+bool ScreamTx::Stream::isRtpQueueDiscard() {
+    bool tmp = rtpQueueDiscard;
+    rtpQueueDiscard = false;
+    return tmp;
+}
+
+/*
+* Adjust (enforce) proper prioritization between active streams
+* at regular intervals. This is a necessary addon to mitigate
+* issues that VBR media brings
+* The function consists of equal measures or rational thinking and
+* black magic, which means that there is no 100% guarantee that
+* will always work.
+*/
+void ScreamTx::adjustPriorities(uint64_t time_us) {
+    if (nStreams == 1 || time_us - lastAdjustPrioritiesT_us < 1000000) {
+        /*
+        * Skip if only one stream or if adjustment done less than 5s ago
+        */
+        return;
+    }
+
+    if (queueDelayTrend > 0.02) {
+        /*
+        * Adjust only if there is some evidence of congestion
+        */
+        int avgCreditLost = 0;
+        int avgCreditLostN = 0;
+        for (int n = 0; n < nStreams; n++) {
+            avgCreditLost += streams[n]->creditLost;
+            if (streams[n]->isActive)
+                avgCreditLostN++;
+        }
+        if (avgCreditLostN <= 1) {
+            /*
+            * At the most 1 steam active, skip adjustment
+            */
+            return;
+        }
+
+        avgCreditLost /= avgCreditLostN;
+        for (int n = 0; n < nStreams; n++) {
+            if (streams[n]->isActive) {
+                if (streams[n]->creditLost < avgCreditLost &&
+                    streams[n]->targetBitrate > streams[n]->rateRtp) {
+                    /*
+                    * Stream is using more of its share than the average
+                    * bitrate is likelky too high, reduce target bitrate
+                    * This algorithm works best when we want to ensure
+                    * different priorities
+                    */
+                    streams[n]->targetBitrate = std::max(streams[n]->minBitrate, streams[n]->targetBitrate*0.9f);
+                }
+            }
+        }
+
+        for (int n = 0; n < nStreams; n++)
+            streams[n]->creditLost = 0;
+
+
+        lastAdjustPrioritiesT_us = time_us;
+
+    }
+    if (time_us - lastAdjustPrioritiesT_us < 20000000) {
+        /*
+        * Clear old statistics of unused credits
+        */
+        for (int n = 0; n < nStreams; n++)
+            streams[n]->creditLost = 0;
+
+
+        lastAdjustPrioritiesT_us = time_us;
+    }
+}
+
+/*
+* Get the prioritized stream
+*/
+ScreamTx::Stream* ScreamTx::getPrioritizedStream(uint64_t time_us) {
+    /*
+    * Function that prioritizes between streams, this function may need
+    * to be modified to handle the prioritization better for e.g
+    * FEC, SVC etc.
+    */
+    if (nStreams == 1)
+        /*
+        * Skip if only one stream to save CPU
+        */
+        return streams[0];
+
+    int maxCredit = 1;
+    Stream *stream = NULL;
+    /*
+    * Pick a stream with credit higher or equal to
+    * the size of the next RTP packet in queue for the given stream.
+    */
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        if (tmp->rtpQueue->sizeOfQueue() == 0) {
+            /*
+            * Queue empty
+            */
+        }
+        else {
+            /*
+            * Pick stream if it has the highest credit so far
+            */
+            if (tmp->credit >= std::max(maxCredit, tmp->rtpQueue->sizeOfNextRtp())) {
+                stream = tmp;
+                maxCredit = tmp->credit;
+            }
+        }
+    }
+    if (stream != NULL) {
+        return stream;
+    }
+    /*
+    * If the above doesn't give a candidate..
+    * Pick the stream with the highest priority that also
+    * has at least one RTP packet in queue.
+    */
+    float maxPrio = 0.0;
+    for (int n = 0; n < nStreams; n++) {
+        Stream *tmp = streams[n];
+        float priority = tmp->targetPriority;
+        if (tmp->rtpQueue->sizeOfQueue() > 0 && priority > maxPrio) {
+            maxPrio = priority;
+            stream = tmp;
+        }
+    }
+    return stream;
+}
diff --git a/Laptop/scream/scream_sender/code/ScreamTx.h b/Laptop/scream/scream_sender/code/ScreamTx.h
new file mode 100644
index 0000000000000000000000000000000000000000..3c802fb8df75ad05de70e23a6455ae77f7e2621d
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/ScreamTx.h
@@ -0,0 +1,627 @@
+#ifndef SCREAM_TX
+#define SCREAM_TX
+
+#include <string.h>
+#include <iostream>
+#include <cstdint>
+using namespace std;
+
+/*
+* This module implements the sender side of SCReAM,
+*  see https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf
+*  for details on how it is integrated in audio/video platforms
+* A full implementation needs the additional code for
+*  + RTCP feedback (e.g using RFC3611 XR elements)
+*  + RTP queue(s), one queue per stream, see SCReAM description for interface description
+*  + Other obvious stuff such as RTP payload packetizer, video+audio capture, coders....
+*
+*/
+
+// ==== Default parameters (if tuning necessary) ====
+// Connection related default parameters
+// CWND scale factor upon loss event
+static const float kLossBeta = 0.8f;
+// CWND scale factor upon ECN-CE event
+static const float kEcnCeBeta = 0.9f;
+// Min and max queue delay target
+static const float kQueueDelayTargetMin = 0.1f; //ms
+// Enable shared botleneck detection and queue delay target adjustement
+// good if SCReAM needs to compete with e.g FTP but
+// Can in some cases cause self-inflicted congestion
+//  i.e the e2e delay can become large even though
+//  there is no competing traffic present
+//  For some reason, self-inflicted congestion is easily triggered
+//  when an audio + video stream is run, so bottomline is that
+//  this feature is a bit shaky
+static const bool kEnableSbd = false;
+// CWND up and down gain factors
+static const float kGainUp = 1.0f;
+static const float kGainDown = 2.0f;
+
+// Stream related default parameters
+// Max video rampup speed in bps/s (bits per second increase per second)
+static const float kRampUpSpeed = 200000.0f; // bps/s
+// Max RTP queue delay, RTP queue is cleared if this value is exceeded
+static const float kMaxRtpQueueDelay = 0.1;  // 0.1s
+// Compensation factor for RTP queue size
+// A higher value such as 0.2 gives less jitter esp. in wireless (LTE)
+// but potentially also lower link utilization
+static const float kTxQueueSizeFactor = 0.2f;
+// Compensation factor for detected congestion in rate computation
+// A higher value such as 0.5 gives less jitter esp. in wireless (LTE)
+// but potentially also lower link utilization
+static const float kQueueDelayGuard = 0.1f;
+// Video rate scaling due to loss events
+static const float kLossEventRateScale = 0.9f;
+// Video rate scaling due to ECN marking events
+static const float kEcnCeEventRateScale = 0.95f;
+
+
+
+// Constants
+/*
+* Timestamp sampling rate for SCReAM feedback
+*/
+static const float kTimestampRate = 1000.0f;
+/*
+* Max number of RTP packets in flight
+* With and MSS = 1200 byte and an RTT = 200ms
+* this is enount to support media bitrates of ~50Mbps
+* Note, 65536 % kMaxTxPackets must be zero
+*/
+static const int kMaxTxPackets = 2048;
+/*
+* Max number of streams
+*/
+static const int kMaxStreams = 10;
+/*
+* History vectors
+*/
+static const int kBaseOwdHistSize = 50;
+static const int kQueueDelayNormHistSize = 200;
+static const int kQueueDelayNormHistSizeSh = 50;
+static const int kQueueDelayFractionHistSize = 20;
+static const int kBytesInFlightHistSizeMax = 60;
+static const int kRateUpDateSize = 4;
+static const int kTargetBitrateHistSize = 3;
+static const int kLossRateHistSize = 10;
+
+class RtpQueueIface;
+class ScreamTx {
+public:
+    /*
+    * Constructor, see constant definitions above for an explanation of parameters
+    * cwnd > 0 sets a different initial congestion window, for example it can be set to
+    *  initialrate/8*rtt
+    * cautiousPacing is set in the range [0.0..1.0]. A higher values restricts the transmission rate of large key frames
+    *  which can be beneficial if it is evident that large key frames cause packet drops, for instance due to
+    *  reduced buffer size in wireless modems.
+    *  This is however at the potential cost of an overall increased transmission delay also when links are uncongested
+    *  as the RTP packets are more likely to be buffered up on the sender side when cautiousPacing is set close to 1.0.
+    * lossBeta == 1.0 means that packet losses are ignored by the congestion control
+    * bytesInFlightHistSize can be set to a larger value than 5(s) for enhanced robustness to media coders that are idle
+    *  for long periods
+    * isL4s = true changes congestion window reaction to ECN marking to a scalable function, similar to DCTCP
+    */
+    ScreamTx(float lossBeta = kLossBeta,
+        float ecnCeBeta = kEcnCeBeta,
+        float queueDelayTargetMin = kQueueDelayTargetMin,
+        bool enableSbd = kEnableSbd,
+        float gainUp = kGainUp,
+        float gainDown = kGainDown,
+        int cwnd = 0,  // An initial cwnd larger than 2*mss
+        float cautiousPacing = 0.0f,
+        int bytesInFlightHistSize = 5,
+        bool isL4s = false,
+        bool openWindow = false);
+
+    ~ScreamTx();
+
+    /*
+    * Register a new stream {SSRC,PT} tuple,
+    *  with a priority value in the range ]0.0..1.0]
+    *  where 1.0 denotes the highest priority.
+    * It is recommended that at least one stream has prioritity 1.0.
+    * Bitrates are specified in bps
+    * See constant definitions above for an explanation of other default parameters
+    */
+    void registerNewStream(RtpQueueIface *rtpQueue,
+        uint32_t ssrc,
+        float priority,     // priority in range ]0.0 .. 1.0], 1.0 is highest
+        float minBitrate,   // Min target bitrate
+        float startBitrate, // Starting bitrate
+        float maxBitrate,   // Max target bitrate
+        float rampUpSpeed = kRampUpSpeed,
+        float maxRtpQueueDelay = kMaxRtpQueueDelay,
+        float txQueueSizeFactor = kTxQueueSizeFactor,
+        float queueDelayGuard = kQueueDelayGuard,
+        float lossEventRateScale = kLossEventRateScale,
+        float ecnCeEventRateScale = kEcnCeEventRateScale);
+
+    /*
+     * Updates the min and max bitrates for an existing stream
+     */
+    void updateBitrateStream(uint32_t ssrc,
+        float minBitrate,
+        float maxBitrate);
+
+    /*
+     * Access the configured RtpQueue of an existing stream
+     */
+    RtpQueueIface * getStreamQueue(uint32_t ssrc);
+
+    /*
+    * Call this function for each new video frame
+    *  Note : isOkToTransmit should be called after newMediaFrame
+    */
+    void newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp);
+
+    /*
+    * Function determines if an RTP packet with SSRC can be transmitted
+    * Return values :
+    * 0.0  : RTP packet with SSRC can be immediately transmitted
+    *  addTransmitted must be called if packet is transmitted as a result of this
+    * >0.0 : Time [s] until this function should be called again
+    *   This can be used to start a timer
+    *   Note that a call to newMediaFrame or incomingFeedback should
+    *    cause an immediate call to isOkToTransmit
+    * -1.0 : No RTP packet available to transmit or send window is not large enough
+    */
+    float isOkToTransmit(uint64_t time_us, uint32_t &ssrc);
+
+    /*
+    * Add packet to list of transmitted packets
+    * should be called when an RTP packet transmitted
+    * Return time until isOkToTransmit can be called again
+    */
+    float addTransmitted(uint64_t timestamp_us, // Wall clock ts when packet is transmitted
+        uint32_t ssrc,
+        int size,
+        uint16_t seqNr);
+
+    /*
+    * New incoming feedback, this function
+    * triggers a CWND update
+    * The SCReAM timestamp is in jiffies, where the frequency is controlled
+    * by the timestamp clock frequency (default 1000Hz)
+    * The ackVector indicates recption of the 64 RTP SN prior to highestSeqNr
+    *  Note : isOkToTransmit should be called after incomingFeedback
+    * ecnCeMarkedBytes indicates the cumulative number of bytes that are ECN-CE marked
+    */
+    void incomingFeedback(uint64_t time_us,
+        uint32_t ssrc,         // SSRC of stream
+        uint32_t timestamp,    // SCReAM FB timestamp [jiffy]
+        uint16_t highestSeqNr, // Highest ACKed RTP sequence number
+        uint64_t ackVector,   // ACK vector
+        uint16_t ecnCeMarkedBytes = 0); // Number of ECN marked bytes
+
+    /*
+    * Parse feedback according to the format below. It is up to the
+    * wrapper application this RTCP from a compound RTCP if needed
+    * BT = 255, means that this is experimental use
+    *
+    * 0                   1                   2                   3
+    * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |V=2|P|reserved |   PT=XR=207   |           length=6            |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                              SSRC                             |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |     BT=255    |    reserved   |         block length=4        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                        SSRC of source                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * | Highest recv. seq. nr. (16b)  |         ECN_CE_bytes          |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b0-31)                        |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                     Ack vector (b32-63)                       |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    * |                    Timestamp (32bits)                         |
+    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    */
+    void incomingFeedback(uint64_t time_us,
+        unsigned char* buf,
+        int size);
+
+    /*
+    * Get the target bitrate for stream with SSRC
+    * NOTE!, Because SCReAM operates on RTP packets, the target bitrate will
+    *  also include the RTP overhead. This means that a subsequent call to set the
+    *  media coder target bitrate must subtract an estimate of the RTP + framing
+    *  overhead. This is not critical for Video bitrates but can be important
+    *  when SCReAM is used to congestion control e.g low bitrate audio streams
+    * Function returns -1 if a loss is detected, this signal can be used to
+    *  request a new key frame from a video encoder
+    */
+    float getTargetBitrate(uint32_t ssrc);
+
+    /*
+    * Set target priority for a given stream, priority value should be in range ]0.0..1.0]
+    */
+    void setTargetPriority(uint32_t ssrc, float aPriority);
+
+    /*
+    * Get verbose log information
+    */
+    void getLog(float time, char *s);
+
+    /*
+    * Get verbose log information
+    */
+    void getShortLog(float time, char *s);
+
+    /*
+    * Get overall simplified statistics
+    */
+    void getStatistics(float time, char *s);
+
+
+private:
+    /*
+    * Struct for list of RTP packets in flight
+    */
+    struct Transmitted {
+        uint64_t timeTx_us;
+        uint32_t timestamp;
+        int size;
+        uint16_t seqNr;
+        bool isUsed;
+        bool isAcked;
+        bool isAfterReceivedEdge;
+
+    };
+
+    /*
+      * Statistics for the network congestion control and the
+      *  stream[0]
+      */
+    class Statistics {
+    public:
+        Statistics();
+        void getSummary(float time, char s[]);
+        void add(float rateTx, float rateLost, float rtt, float queueDelay);
+    private:
+        float lossRateHist[kLossRateHistSize];
+        float rateLostAcc;
+        int rateLostN;
+        int lossRateHistPtr;
+        float avgRateTx;
+        float avgRtt;
+        float avgQueueDelay;
+        float sumRateTx;
+        float sumRateLost;
+
+    };
+
+
+    /*
+    * One instance is created for each {SSRC,PT} tuple
+    */
+    class Stream {
+    public:
+        Stream(ScreamTx *parent,
+            RtpQueueIface *rtpQueue,
+            uint32_t ssrc,
+            float priority,
+            float minBitrate,
+            float startBitrate,
+            float maxBitrate,
+            float rampUpSpeed,
+            float maxRtpQueueDelay,
+            float txQueueSizeFactor,
+            float queueDelayGuard,
+            float lossEventRateScale,
+            float ecnCeEventRateScale);
+
+        float getMaxRate();
+
+        float getTargetBitrate();
+
+        void updateRate(uint64_t time_us);
+
+        void updateTargetBitrateI(float br);
+
+        void updateTargetBitrate(uint64_t time_us);
+
+        bool isRtpQueueDiscard();
+
+        bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; };
+        ScreamTx *parent;
+        RtpQueueIface *rtpQueue;      // RTP Packet queue
+        uint32_t ssrc;            // SSRC of stream
+        float rampUpSpeed;
+        float maxRtpQueueDelay;
+        float txQueueSizeFactor;
+        float queueDelayGuard;
+        float lossEventRateScale;
+        float ecnCeEventRateScale;
+
+        int credit;             // Credit that is received if another stream gets
+        //  priority to transmit
+        int creditLost;         // Amount of lost (unused) credit, input to
+        //  adjustPriorities function
+        float targetPriority;   // Stream target priority
+        float targetPriorityInv;// Stream target priority inverted
+        int bytesTransmitted;   // Number of bytes transmitted
+        int bytesAcked;         // Number of ACKed bytes
+        int bytesLost;          // Number of lost bytes
+        float rateTransmitted;  // Transmitted rate
+        float rateAcked;        // ACKed rate
+        float rateLost;         // Lost packets (bit)rate
+        uint16_t hiSeqAck;      // Highest sequence number ACKed
+        uint16_t hiSeqTx;       // Highest sequence number transmitted
+        float minBitrate;       // Min bitrate
+        float maxBitrate;       // Max bitrate
+        float targetBitrate;    // Target bitrate
+        float targetBitrateI;   // Target bitrate inflection point
+        bool wasFastStart;      // Was fast start
+        bool lossEventFlag;     // Was loss event
+        bool ecnCeEventFlag;    // Was ECN mark event
+        float txSizeBitsAvg;    // Avergage nymber of bits in RTP queue
+        uint64_t lastBitrateAdjustT_us; // Last time rate was updated for this stream
+        uint64_t lastRateUpdateT_us;    // Last time rate estimate was updated
+        uint64_t lastTargetBitrateIUpdateT_us;    // Last time rate estimate was updated
+
+        uint64_t timeTxAck_us;  // timestamp when higest ACKed SN was transmitted
+
+        int bytesRtp;           // Number of RTP bytes from media coder
+        float rateRtp;          // Media bitrate
+        float rateRtpHist[kRateUpDateSize];
+        float rateAckedHist[kRateUpDateSize];
+        float rateLostHist[kRateUpDateSize];
+        float rateTransmittedHist[kRateUpDateSize];
+        int rateUpdateHistPtr;
+        float targetBitrateHist[kTargetBitrateHistSize];
+        int targetBitrateHistPtr;
+        uint64_t targetBitrateHistUpdateT_us;
+        float targetRateScale;
+
+        bool isActive;
+        uint64_t lastFrameT_us;
+        uint64_t initTime_us;
+        bool rtpQueueDiscard;
+        uint64_t lastRtpQueueDiscardT_us;
+        bool wasRepairLoss;
+        bool repairLoss;
+        int lastLossDetectIx;
+        uint16_t ecnCeMarkedBytes;
+
+
+        Transmitted txPackets[kMaxTxPackets];
+        int txPacketsPtr;
+
+    };
+
+    /*
+    * Initialize values
+    */
+    void initialize(uint64_t time_us);
+
+    /*
+    * Mark ACKed RTP packets
+    */
+    void markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream);
+
+    /*
+    * Update CWND
+    */
+    void updateCwnd(uint64_t time_us);
+
+    /*
+    * Detect lost RTP packets
+    */
+    void detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream);
+
+    /*
+    * Call this function at regular intervals to determine active streams
+    */
+    void determineActiveStreams(uint64_t time_us);
+
+    /*
+    * Compute 1st order prediction coefficient of queue delay multiplied by the queue delay fraction
+    * A value [0.0..1.0] indicates if queue delay is increasing
+    * This gives a rough estimate of how the queuing delay delay evolves
+    */
+    void computeQueueDelayTrend();
+
+    /*
+    * Estimate one way delay [jiffy] and updated base delay
+    * Base delay is not subtracted
+    */
+    uint32_t estimateOwd(uint64_t time_us);
+
+    /*
+    * return base delay [jiffy]
+    */
+    uint32_t getBaseOwd();
+
+    /*
+    * Compute indicators of shared bottleneck
+    */
+    void computeSbd();
+
+    /*
+    * True if competing (TCP)flows detected
+    */
+    bool isCompetingFlows();
+
+    /*
+    * Get stream with corresponding SSRC
+    */
+    Stream* getStream(uint32_t ssrc);
+
+    /*
+    * Get matching stream index for this SSRC tuple,
+    *  return -1 if no match
+    */
+    int getStreamIndex(uint32_t ssrc);
+
+    /*
+    * Adjust stream bitrates to reflect priorities
+    */
+    void adjustPriorities(uint64_t time_us);
+
+    /*
+    * Get the prioritized stream
+    *  Return NULL if no stream with
+    *  with RTP packets
+    */
+    Stream* getPrioritizedStream(uint64_t time_us);
+
+    /*
+    * Add credit to unserved streams
+    */
+    void addCredit(uint64_t time_us,
+        Stream* servedStream,
+        int transmittedBytes);
+
+    /*
+    * Subtract used credit
+    */
+    void subtractCredit(uint64_t time_us,
+        Stream* servedStream,
+        int transmittedBytes);
+
+    /*
+    * return 1 if in fast start
+    */
+    int isInFastStart() { return inFastStart ? 1 : 0; };
+
+    /*
+    * Get the fraction between queue delay and the queue delay target
+    */
+    float getQueueDelayFraction();
+
+    /*
+    * Get the queuing delay trend
+    */
+    float getQueueDelayTrend();
+
+    /*
+    * Variables for network congestion control
+    */
+
+    /*
+    * Related to computation of queue delay and target queuing delay
+    */
+    float lossBeta;
+    float ecnCeBeta;
+    float queueDelayTargetMin;
+    bool enableSbd;
+    float gainUp;
+    float gainDown;
+    float cautiousPacing;
+
+    uint64_t sRttSh_us;
+    uint64_t sRtt_us;
+    float sRtt;
+    uint32_t ackedOwd;
+    uint32_t baseOwd;
+
+    uint32_t baseOwdHist[kBaseOwdHistSize];
+    int baseOwdHistPtr;
+    uint32_t baseOwdHistMin;
+    float queueDelay;
+    float queueDelayFractionAvg;
+    float queueDelayFractionHist[kQueueDelayFractionHistSize];
+    int queueDelayFractionHistPtr;
+    float queueDelayTrend;
+    float queueDelayTarget;
+    float queueDelayNormHist[kQueueDelayNormHistSize];
+    int queueDelayNormHistPtr;
+    float queueDelaySbdVar;
+    float queueDelaySbdMean;
+    float queueDelaySbdSkew;
+    float queueDelaySbdMeanSh;
+    float queueDelayMax;
+
+    /*
+    * CWND management
+    */
+    int bytesNewlyAcked;
+    int mss; // Maximum Segment Size
+    int cwnd; // congestion window
+    int cwndMin;
+    bool openWindow;
+    int bytesInFlight;
+    int bytesInFlightLog;
+    int bytesInFlightHistLo[kBytesInFlightHistSizeMax];
+    int bytesInFlightHistHi[kBytesInFlightHistSizeMax];
+    int bytesInFlightHistSize;
+    int bytesInFlightHistPtr;
+    int bytesInFlightMaxLo;
+    int bytesInFlightHistLoMem;
+    int bytesInFlightMaxHi;
+    int bytesInFlightHistHiMem;
+    float maxBytesInFlight;
+    int accBytesInFlightMax;
+    int nAccBytesInFlightMax;
+    float rateTransmitted;
+    float rateAcked;
+    float queueDelayTrendMem;
+    float maxRate;
+    uint64_t lastCwndUpdateT_us;
+    bool isL4s;
+    float l4sAlpha;
+    int bytesMarkedThisRtt;
+    int bytesDeliveredThisRtt;
+    uint64_t lastL4sAlphaUpdateT_us;
+    /*
+    * Loss event
+    */
+    bool lossEvent;
+    bool wasLossEvent;
+    float lossEventRate;
+
+    /*
+    * ECN-CE
+    */
+    bool ecnCeEvent;
+
+    /*
+    * Fast start
+    */
+    bool inFastStart;
+
+    /*
+    * Transmission scheduling
+    */
+    uint64_t paceInterval_us;
+    float paceInterval;
+    float rateTransmittedAvg;
+
+    /*
+    * Update control variables
+    */
+    bool isInitialized;
+    uint64_t lastSRttUpdateT_us;
+    uint64_t lastBaseOwdAddT_us;
+    uint64_t baseOwdResetT_us;
+    uint64_t lastAddToQueueDelayFractionHistT_us;
+    uint64_t lastBytesInFlightT_us;
+    uint64_t lastCongestionDetectedT_us;
+    uint64_t lastLossEventT_us;
+    uint64_t lastTransmitT_us;
+    uint64_t nextTransmitT_us;
+    uint64_t lastRateUpdateT_us;
+    uint64_t lastAdjustPrioritiesT_us;
+    uint64_t lastRttT_us;
+    uint64_t lastBaseDelayRefreshT_us;
+    uint64_t initTime_us;
+    float queueDelayMin;
+    float queueDelayMinAvg;
+
+    /*
+    * Variables for multiple steams handling
+    */
+    Stream *streams[kMaxStreams];
+    int nStreams;
+
+    /*
+      * Statistics
+      */
+    Statistics *statistics;
+
+};
+#endif
diff --git a/Laptop/scream/scream_sender/code/cmake_install.cmake b/Laptop/scream/scream_sender/code/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..39a25e535c8c77cce8f6a49047d1a00d3aae1b16
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/cmake_install.cmake
@@ -0,0 +1,34 @@
+# Install script for directory: /home/user/scream_panasonic/scream_sender/code
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
diff --git a/Laptop/scream/scream_sender/code/scream_sender.cpp b/Laptop/scream/scream_sender/code/scream_sender.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ef05df10bb147977ee315c355d43c355d2a28b64
--- /dev/null
+++ b/Laptop/scream/scream_sender/code/scream_sender.cpp
@@ -0,0 +1 @@
+// Scream sender side wrapper
#include "ScreamTx.h"
#include "RtpQueue.h"
#include "sys/socket.h"
#include "sys/types.h"
#include "netinet/in.h"
#include <string.h> /* needed for memset */
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <iostream>
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/time.h>
#include <signal.h>
#include <math.h>
struct itimerval timer;
struct sigaction sa;

using namespace std;

#define BUFSIZE 2048
#define MIN_PACE_INTERVAL 0.001
#define HTTP_BUF_SIZE 10000
#define MAX_SOURCES 6
#define KEEP_ALIVE_PKT_SIZE 1

int PT = 98;
int http_sock = 0;
int fd_out_rtp;
int fd_in_rtp[MAX_SOURCES];
ScreamTx *screamTx = 0;
RtpQueue *rtpQueue[MAX_SOURCES] = {0,0,0,0,0,0};
int nSources = 0;
float delayTarget = 0.1f;

char *auth;

#define ECN_CAPABLE
/*
* ECN capable
* 0 = Not-ECT
* 1 = ECT(0)
* 2 = ECT(1)
*/
int ect = 0;

char *out_ip = "192.168.0.21";
int out_port = 30110;
char *in_ip[MAX_SOURCES];
int in_port[MAX_SOURCES];
uint32_t in_ssrc[MAX_SOURCES];
float priority[MAX_SOURCES] = {1.0,1.0,1.0,1.0,1.0,1.0};
float congestionScaleFactor = 0.9;
int bytesInFlightHistSize = 5;
float maxRate = 8192e3f;

struct sockaddr_in in_rtp_addr[MAX_SOURCES];
struct sockaddr_in out_rtp_addr;
struct sockaddr_in in_rtcp_addr;
struct sockaddr_in http_addr;

socklen_t addrlen_out_rtp;
socklen_t addrlen_dummy_rtcp;
uint64_t lastLogT = 0;

socklen_t addrlen_in_rtp[MAX_SOURCES] = {
  sizeof(in_rtp_addr[0]),
  sizeof(in_rtp_addr[1]),
  sizeof(in_rtp_addr[2]),
  sizeof(in_rtp_addr[3]),
  sizeof(in_rtp_addr[4]),
  sizeof(in_rtp_addr[5])};
socklen_t addrlen_in_rtcp = sizeof(in_rtcp_addr);
pthread_mutex_t lock_scream;
pthread_mutex_t lock_rtp_queue;

// Accumulated pace time, used to avoid starting very short pace timers
//  this can save some complexity at very higfh bitrates
float accumulatedPaceTime = 0.0f;
bool paceTimerRunning = false;

int lastQuantRate[MAX_SOURCES] = {0,0,0,0,0,0};

const void sendCoderCommand(char *buf, char *ip);
void *txRtpThread(void *arg);
void *videoControlThread(void *arg);
int setup();
void *rxRtcpThread(void *arg);
void *rxRtpThread5(void *arg);
void *rxRtpThread4(void *arg);
void *rxRtpThread3(void *arg);
void *rxRtpThread2(void *arg);
void *rxRtpThread1(void *arg);
void *rxRtpThread0(void *arg);
void trySendRtp(uint64_t time);
long getTimeInUs(){
  struct timeval tp;
  gettimeofday(&tp, NULL);
  long us = tp.tv_sec * 1000000 + tp.tv_usec;
  return us;
}
uint64_t t0 = getTimeInUs();
uint64_t lastT = getTimeInUs();

volatile sig_atomic_t done = 0;
bool stopThread = false;
void stopAll(int signum)
{
  stopThread = true;
}

void closeSockets(int signum)
{
    exit(0);
}

/*
* Send a packet
*/
void sendPacket(char* buf, int size) {
  sendto(fd_out_rtp, buf, size, 0, (struct sockaddr *)&out_rtp_addr, sizeof(out_rtp_addr));
}

int main(int argc, char* argv[]) {
  /*
  * Parse command line
  */
  if (argc <= 1) {
    cerr << "Usage : " << endl << " scream_sender <options> auth nsources out_ip out_port in_ip_1 in_port_1 in_ssrc_1 prio_1 .. in_ip_n in_port_n in_ssrc_n prio_n" << endl;
    cerr << " -ect n       : ECN capable transport, n = 1 or 2 for ECT(0) or ECT(1), 0 for not-ECT" << endl;
    cerr << " -scale val   : Congestion scale factor, range [0.5..1.0], default = 0.9" << endl;
    cerr << "                 it can be necessary to set scale 1.0 if the LTE modem drops packets" << endl;
    cerr << "                 already at low congestion levels." << endl;
    cerr << " -delaytarget : Sets a queue delay target (default = 0.1s) " << endl;
    cerr << " -cwvmem      : Sets the memory of the congestion window validation (default 5s), max 60s" << endl;
    cerr << "                 a larger memory can be beneficial in remote applications where the video input" << endl;
    cerr << "                 is static for long periods. " << endl; 
    cerr << " -maxrate     : Set max rate [kbps], default 8192." << endl;
    cerr << " auth         : User authorization string base64 encoded version of user:password of IP camera" << endl;
    cerr << "                 use eg. the Linux command " << endl;
    cerr << "                 echo -n auser:apassword | base64 " << endl;
    cerr << " nsources     : Number of sources, min=1, max=" << MAX_SOURCES << endl;
    cerr << " out_ip       : remote (SCReAM receiver) IP address" << endl;
    cerr << " out_port     : remote (SCReAM receiver) port" << endl;
    cerr << " in_ip_1      : IP address for video coder 1 " << endl;
    cerr << " in_port_1    : port for RTP media from video coder 1 " << endl;
    cerr << " in_ssrc_1    : SSRC (hexadecimal) for RTP media from video coder 1 " << endl;
    cerr << " prio_1       : Bitrate priority for video coder 1, range [0.1..1.0] " << endl;
    cerr << " ." << endl;
    cerr << " ." << endl;
    cerr << " in_ip_n      : IP address for video coder n " << endl;
    cerr << " in_port_n    : port for RTP media from video coder n " << endl;
    cerr << " in_ssrc_n    : SSRC (hexadecimal) for RTP media from video coder n " << endl;
    cerr << " prio_n       : Bitrate priority for video coder n, range [0.1..1.0] " << endl;
    exit(-1);
  }
  int ix = 1;
  int nExpectedArgs = 2+2+1;
  while (strstr(argv[ix],"-")) {
    if (strstr(argv[ix],"-ect")) {
      ect = atoi(argv[ix+1]);
      ix+=2;
      nExpectedArgs += 2;
      if (ect < 0 || ect > 2) {
        cerr << "ect must be 0, 1 or 2 " << endl;
        exit(0);
      }
    }
    if (strstr(argv[ix],"-scale")) {
      congestionScaleFactor = atof(argv[ix+1]);
      ix+=2;
      nExpectedArgs += 2;
    }
    if (strstr(argv[ix],"-delaytarget")) {
      delayTarget = atof(argv[ix+1]);
      ix+=2;
      nExpectedArgs += 2;
    }
    if (strstr(argv[ix],"-cwvmem")) {
      bytesInFlightHistSize = atoi(argv[ix+1]);
      ix+=2;
      nExpectedArgs += 2;
      if (bytesInFlightHistSize > kBytesInFlightHistSizeMax || bytesInFlightHistSize < 2) {
        cerr << "cwvmem must be in range [2 .. " << kBytesInFlightHistSizeMax << "]" << endl;
        exit(0);
      }
    }
    if (strstr(argv[ix],"-maxrate")) {
      maxRate = atoi(argv[ix+1])*1000.0f;
      ix+=2;
      nExpectedArgs += 2;
    }
  }
  auth = argv[ix]; ix++;
  nSources = atoi(argv[ix]);
  nExpectedArgs += nSources*4;
  ix++;
  if (nSources < 1 || nSources > MAX_SOURCES) {
    cerr << "number of sources must be in interval [0.." << MAX_SOURCES << "]" << endl;
    exit(0);
  }
  if (argc-1 != nExpectedArgs-1) {
    cerr << "expected " << (nExpectedArgs-1) << " arguments, but see " << (argc-1) << " ditto ?" << endl;
    exit(0);
  }
  out_ip = argv[ix];ix++;
  out_port = atoi(argv[ix]);ix++;
  for (int n=0; n < nSources; n++) {
    char s[20];
    in_ip[n] = argv[ix];ix++;
    in_port[n] = atoi(argv[ix]);ix++;
    strcpy(s, argv[ix]);ix++;
    sscanf(s,"%x",&in_ssrc[n]);
    priority[n] = atof(argv[ix]);ix++;
  }

  if (setup() == 0)
    return 0;

  struct sigaction action;
  memset(&action, 0, sizeof(struct sigaction));
  action.sa_handler = stopAll;
  sigaction(SIGTERM, &action, NULL);
  sigaction(SIGINT, &action, NULL);

  char buf[HTTP_BUF_SIZE];

  cerr << "Configure media sources  "<<endl;
  for (int n=0; n < nSources; n++) {
    sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_bandwidth=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n",
      1024, in_ip[n], auth);
      sendCoderCommand(buf, in_ip[n]);
    sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_quality=9 HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n",
      in_ip[n],auth);
    sendCoderCommand(buf, in_ip[n]);
  }

  cerr << "Scream sender started "<<endl;
  pthread_mutex_init(&lock_scream, NULL);

  pthread_t tx_rtp_thread;
  pthread_t rx_rtp_thread[MAX_SOURCES];
  pthread_t rx_rtcp_thread;
  pthread_t video_thread;

  /* Create Transmit RTP thread */
  pthread_create(&tx_rtp_thread,NULL,txRtpThread,"RTCP thread...");
  cerr << "RX RTP thread(s) started" << endl;

  /* Create Receive RTP thread(s) */
  pthread_create(&rx_rtp_thread[0],NULL,rxRtpThread0,"RTP thread 0...");
  if (nSources > 1)
    pthread_create(&rx_rtp_thread[1],NULL,rxRtpThread1,"RTP thread 1...");
  if (nSources > 2)
    pthread_create(&rx_rtp_thread[2],NULL,rxRtpThread2,"RTP thread 2...");
  if (nSources > 3)
    pthread_create(&rx_rtp_thread[3],NULL,rxRtpThread3,"RTP thread 3...");
  if (nSources > 4)
    pthread_create(&rx_rtp_thread[4],NULL,rxRtpThread4,"RTP thread 4...");
  if (nSources > 5)
    pthread_create(&rx_rtp_thread[5],NULL,rxRtpThread5,"RTP thread 5...");
  cerr << "RX RTP thread(s) started" << endl;

  /* Create RTCP thread */
  pthread_create(&rx_rtcp_thread,NULL,rxRtcpThread,"RTCP thread...");
  cerr << "RTCP thread started" << endl;

  /* Create Video control thread */
  pthread_create(&video_thread, NULL, videoControlThread, "Video control thread...");
  cerr << "Media control thread started" << endl;

  while(!stopThread) {
    uint64_t time_us = getTimeInUs()-t0;
    if (time_us-lastLogT > 200000) {
      char s[1000];
      char s1[1000];
      float time_s = (time_us)/1e6f;
      screamTx->getShortLog(time_s, s1);
      sprintf(s,"%8.3f, %s ", time_s, s1);
      cout << s << endl;

      
      /*
      * Send statistics to receiver this can be used to 
      * verify reliability of remote control 
      */
      s1[0] = 0x80;
      s1[1] = 0x7F; // Set PT = 0x7F for statistics packet
      memcpy(&s1[2],s,strlen(s));
      sendPacket(s1, strlen(s)+2);
    
      /* 
      * Send SSRC map to receiver to enable 
      * correct mapping of cameras to displays
      */
      s1[0] = 0x80;
      s1[1] = 0x7E; // Set PT = 0x7E for SSRC map
      for (int n=0; n < nSources; n++) {
         /*
         * Write the SSRCs (in network byte order)
         */ 
         uint32_t tmp_l;
         tmp_l = htonl(in_ssrc[n]);
         memcpy(s1 + 2 + n*4, &tmp_l, 4);
      }
      sendPacket(s1, 2+nSources*4);

      lastLogT = time_us;
    }

    usleep(10000);
  };

  usleep(500000);
  close(fd_out_rtp);
  for (int n = 0; n < nSources; n++)
    close(fd_in_rtp[n]);
}

/*
* Lotsalotsa functions...
*/

/*
* Quantize table for Pansonic WV-SBV111M at 1280*960 resolution
*/
int panasonicRates[] =  { 256, 384, 512, 768,1024,1536,2048,3072,4096,6144,8192};
int panasonicQuality[] = { 9,    9,   9,   7,   5,   3,   3,   3,   1,   1,   1};
int panasonicRatesN = 11;
/*
* Quantize the target bitrate to the closest value in a geometric sense
*/
int panasonicQuantizeRate(int rate) {
  int ix = 0;
  double minErr = 1e6;

  while (rate > panasonicRates[ix+1])
  ix++;
  if (ix > 0) {

    double r1 = panasonicRates[ix];
    double r2 = panasonicRates[ix+1];

    double d1 = (rate-r1)/(r2-r1);
    double d2 = (r2-rate)/(r2-r1);

    if (d1*4 > d2)
    ix++;
  }
  return panasonicRates[ix];
}

/*
* Get the appropriate quality setting for the given target bitrate
*/
int panasonicGetQuality(int rate) {
  for (int n=0; n < panasonicRatesN; n++) {
    if (rate == panasonicRates[n])
      return panasonicQuality[n];
  }
}

/*
  Extract the sequence number and the timestamp from the RTP header
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|X|  CC   |M|     PT      |       sequence number         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           timestamp                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           synchronization source (SSRC) identifier            |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |            contributing source -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/
void parseRtp(unsigned char *buf, uint16_t* seqNr, uint32_t* timeStamp, unsigned char *pt) {
  uint16_t rawSeq;
  uint32_t rawTs;
  memcpy(&rawSeq, buf + 2, 2);
  memcpy(&rawTs, buf + 4, 4);
  memcpy(pt,buf+1,1);
  *seqNr = ntohs(rawSeq);
  *timeStamp  = ntohl(rawTs);
}

/*
 * Transmit a packet if possible.
 * If not allowed due to packet pacing restrictions,
 * then sleep
 */
void *txRtpThread(void *arg) {
  int size;
  uint16_t seqNr;
  char buf[2000];
  uint64_t time_us = getTimeInUs()-t0;
  int sleepTime_us = 10;
  float retVal = 0.0f;
  int sizeOfQueue;
  uint32_t ssrc;

  for (;;) {
    if (stopThread) {
      return NULL;
    }  
    time_us = getTimeInUs()-t0;
    sleepTime_us = 10;
    retVal = 0.0f;

    /*
    * Check if send window allows transmission and there is atleast one stream 
    *  with RTP packets in queue
    */
    pthread_mutex_lock(&lock_scream);
    retVal = screamTx->isOkToTransmit(time_us, ssrc);
    pthread_mutex_unlock(&lock_scream);

    if (retVal != -1.0f) {
      /* 
      * Send window allows transmission and atleast one stream has packets in RTP queue
      * Get RTP queue for selected stream (ssrc)
      */ 
      RtpQueue *rtpQueue = (RtpQueue*) screamTx->getStreamQueue(ssrc);

      pthread_mutex_lock(&lock_rtp_queue);
      sizeOfQueue = rtpQueue->sizeOfQueue();
      pthread_mutex_unlock(&lock_rtp_queue);
      do {
         if (retVal == -1.0f) {
            sizeOfQueue = 0;
         } else {
            if (retVal > 0.0f )
               accumulatedPaceTime += retVal;
            if (retVal != -1.0 && accumulatedPaceTime <= MIN_PACE_INTERVAL) {
               /*
               * Get RTP packet from the selected RTP queue 
               */
               pthread_mutex_lock(&lock_rtp_queue);
               rtpQueue->pop(buf, size, seqNr);
               pthread_mutex_unlock(&lock_rtp_queue);

               /*
               * Transmit RTP packet
               */
               sendPacket(buf,size);

               /*
               * Register transmitted RTP packet
               */
               pthread_mutex_lock(&lock_scream);
               retVal = screamTx->addTransmitted(time_us, ssrc, size, seqNr);
               pthread_mutex_unlock(&lock_scream);
            }
       
            /*
            * Check if send window allows transmission and there is atleast one stream 
            *  with RTP packets in queue
            */
            retVal = screamTx->isOkToTransmit(time_us, ssrc);
            if (retVal == -1.0f) {
               /*
               * Send window full or no packets in any RTP queue
               */
               sizeOfQueue = 0;
            } else {
               /* 
               * Send window allows transmission and atleast one stream has packets in RTP queue
               * Get RTP queue for selected stream (ssrc)
               */ 
               rtpQueue = (RtpQueue*) screamTx->getStreamQueue(ssrc);
               pthread_mutex_lock(&lock_rtp_queue);
               sizeOfQueue = rtpQueue->sizeOfQueue();
               pthread_mutex_unlock(&lock_rtp_queue);
            }
         }
      } while (accumulatedPaceTime <= MIN_PACE_INTERVAL &&
           retVal != -1.0f &&
           sizeOfQueue > 0);

      if (accumulatedPaceTime > 0) {
        /*
        * Sleep for a while, this paces out packets
        */
	sleepTime_us = int (accumulatedPaceTime*1e6f);
	accumulatedPaceTime = 0.0f;
      }
    }
    usleep(sleepTime_us);
  }	
  return NULL;
}


int recvRtp(unsigned char *buf_rtp, int ix) {
  /*
  * Wait for RTP packets from the coder
  */
  int recvlen = recvfrom(fd_in_rtp[ix],
                         buf_rtp,
                         BUFSIZE,
                         0,
                         (struct sockaddr *)&in_rtp_addr[ix], &addrlen_in_rtp[ix]);
  if (stopThread)
    return 0;

  return recvlen;
}

void processRtp(unsigned char *buf_rtp, int recvlen, int ix) {
  uint64_t time_us = getTimeInUs();
  time_us = getTimeInUs()-t0; // We need time in microseconds, roughly ms granularity is OK
  uint16_t seqNr;
  uint32_t ts;
  unsigned char pt;

  parseRtp(buf_rtp, &seqNr, &ts, &pt);
  uint32_t pt_ = pt & 0x7F;
  if ((pt & 0x7F)==PT) {
    pthread_mutex_lock(&lock_rtp_queue);
    rtpQueue[ix]->push(buf_rtp, recvlen, seqNr, (time_us)*1e-6f);
    pthread_mutex_unlock(&lock_rtp_queue);

    pthread_mutex_lock(&lock_scream);
    screamTx->newMediaFrame(time_us, in_ssrc[ix], recvlen);
    pthread_mutex_unlock(&lock_scream);
  }
}

/*
* One thread for each media source (camera)
*/
void *rxRtpThread0(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,0);
    if (len > 0) {
      processRtp(buf_rtp, len, 0);
    }
  }
  return NULL;
}
void *rxRtpThread1(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,1);
    if (len > 0) {
      processRtp(buf_rtp, len, 1);
    }
  }
  return NULL;
}
void *rxRtpThread2(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,2);
    if (len > 0) {
      processRtp(buf_rtp, len, 2);
    }
  }
  return NULL;
}
void *rxRtpThread3(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,3);
    if (len > 0) {
      processRtp(buf_rtp, len, 3);
    }
  }
  return NULL;
}
void *rxRtpThread4(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,4);
    if (len > 0) {
      pthread_mutex_lock(&lock_scream);
      processRtp(buf_rtp, len, 4);
      pthread_mutex_unlock(&lock_scream);
    }
  }
  return NULL;
}
void *rxRtpThread5(void *arg) {
  unsigned char buf_rtp[BUFSIZE];
  for (;;) {
    int len = recvRtp(buf_rtp,5);
    if (len > 0) {
      processRtp(buf_rtp, len, 5);
    }
  }
  return NULL;
}

void *rxRtcpThread(void *arg) {
  /*
  * Wait for RTCP packets from receiver
  */
  unsigned char buf_rtcp[BUFSIZE];
  for (;;) {
    int recvlen = recvfrom(fd_out_rtp, buf_rtcp, BUFSIZE, 0, (struct sockaddr *)&in_rtcp_addr, &addrlen_in_rtcp);
    if (stopThread)
      return;
    uint64_t time_us = getTimeInUs()-t0; // We need time in microseconds, roughly ms granularity is OK

    if (recvlen > KEEP_ALIVE_PKT_SIZE) {
      pthread_mutex_lock(&lock_scream);
      screamTx->incomingFeedback(time_us, buf_rtcp, recvlen);
      pthread_mutex_unlock(&lock_scream);
    }
  }
  return NULL;
}

int setup() {
  for (int n=0; n < nSources; n++) {
    in_rtp_addr[n].sin_family = AF_INET;
    in_rtp_addr[n].sin_addr.s_addr = htonl(INADDR_ANY);
    in_rtp_addr[n].sin_port = htons(in_port[n]);
    if ((fd_in_rtp[n] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
       char s[100];
       sprintf(s,"cannot create socket for incoming RTP media %d", n+1);
       perror(s);
       return 0;
    }
    if (bind(fd_in_rtp[n], (struct sockaddr *)&in_rtp_addr[n], sizeof(in_rtp_addr[n])) < 0) {
       char s[100];
       sprintf(s,"bind incoming_rtp_addr %d failed", n+1);
       perror(s);
       return 0;
    } else{
      cerr << "Listen on port " << in_port[n] << " to receive RTP media " << (n+1) << endl;
    }
  }

  memset(&out_rtp_addr,0,sizeof(struct sockaddr_in));
  out_rtp_addr.sin_family = AF_INET;
  inet_aton(out_ip, (in_addr*)&out_rtp_addr.sin_addr.s_addr);
  out_rtp_addr.sin_port = htons(out_port);
  addrlen_out_rtp = sizeof(out_rtp_addr);

  if ((fd_out_rtp = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
     perror("cannot create socket for outgoing RTP media");
     return 0;
  }

  /*
  * Set send buf reasonably high to avoid socket blocking
  */
  int sendBuff = 1000000;
  int res = setsockopt(fd_out_rtp, SOL_SOCKET, SO_SNDBUF, &sendBuff, sizeof(sendBuff));

  /*
  * Set ECN capability for outgoing socket using IP_TOS
  */
#ifdef ECN_CAPABLE
  int iptos = ect; // Check with wireshark
  res = setsockopt(fd_out_rtp, IPPROTO_IP, IP_TOS,  &iptos, sizeof(iptos));
  if (res < 0) {
      cerr << "Not possible to set ECN bits" << endl;
  }
  int tmp = 0;
  res = getsockopt(fd_out_rtp, IPPROTO_IP, IP_TOS,  &tmp, sizeof(tmp));
  if (iptos == tmp) {
      cerr << "ECN set successfully" << endl;
  } else {
      cerr << "ECN bits _not_ set successfully ? " << iptos  << " " << tmp << endl;
  }
#endif
  /*
  * Socket for incoming RTP media
  */
  in_rtcp_addr.sin_family = AF_INET;
  in_rtcp_addr.sin_port = htons(out_port);
  in_rtcp_addr.sin_addr.s_addr = htonl(INADDR_ANY);

  if (bind(fd_out_rtp, (struct sockaddr *)&in_rtcp_addr, sizeof(in_rtcp_addr)) < 0) {
      perror("bind outgoing_rtp_addr failed");
      return 0;
  } else {
    cerr<< "Listen on port "<< out_port <<" to receive RTCP from encoder "<<endl;
  }

  screamTx = new ScreamTx(congestionScaleFactor,
                          congestionScaleFactor,
                          delayTarget,
                          false,
                          1.0f,
                          10.0f,
                          12500,
                          false,
                          bytesInFlightHistSize, 
                          false,
                          false); 
  for (int n=0; n < nSources; n++) {
    rtpQueue[n] = new RtpQueue();

    screamTx->registerNewStream(rtpQueue[n],
                                in_ssrc[n], priority[n],
                                256e3f, 1000e3f, maxRate, 500e5f,
                                0.5f, 0.1f, 0.05f,
                                congestionScaleFactor, congestionScaleFactor);
  }
  return 1;
}

/*
* Create socket to Video encoder
* for rate commands etc.
*/
int create_tcp_socket() {
	int sock;
	if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){
		cerr << "Can't create TCP socket" << endl;
		exit(1);
	}
	return sock;
}

int setup_http(char *ip) {
	http_addr.sin_family = AF_INET;
	http_addr.sin_addr.s_addr = htonl(INADDR_ANY);
	inet_aton(ip, (in_addr*)&http_addr.sin_addr.s_addr);
	http_addr.sin_port = htons(80);
	if (connect(http_sock, (struct sockaddr *)&http_addr, sizeof(struct sockaddr)) < 0){
		cerr << "Could not connect to Video coder HTTP server " << ip << endl;
		exit(1);
	}
}

/*
* Send rate change request [bps]
*/
const void sendCoderCommand(char *buf, char *ip) {
  http_sock = create_tcp_socket();
  setup_http(ip);
  //Send the query to the server
  int sent = 0;
  int tmpres = 0;
  //cerr << "Send HTTP : " << buf << endl;
  bool errSend = false;
  /*
  * Send HTTP GET
  */
  while (sent < strlen(buf)) {
    tmpres = send(http_sock, buf + sent, strlen(buf) - sent, 0);
    if (tmpres == -1){
      cerr << "Can't send HTTP GET" << endl;
      errSend = true;
    }
    sent += tmpres;
  }
  if (true && !errSend) {
    memset(buf, 0, sizeof(buf));
    tmpres = recv(http_sock, buf, HTTP_BUF_SIZE, 0);
    if (tmpres > 0) {
      //cout << "HTTP response: " << buf << endl;
    }
  }
  close(http_sock);
}

void *videoControlThread(void *arg) {

  char buf[HTTP_BUF_SIZE];
  while (!stopThread) {
    for (int n=0; n < nSources; n++) {
      /*
      * Poll rate change for all media sources
      */
      float rate = screamTx->getTargetBitrate(in_ssrc[n]);
      if (rate > 0) {
        int rateQ = (int)(std::min(8192.0f,rate/1000.0f)+0.5f);
        rateQ = panasonicQuantizeRate(rateQ);
        if (lastQuantRate[n] != rateQ) {
           /*
           * HTTP access to media coder is slow, send command only if rate is changed
           */
           lastQuantRate[n] = rateQ;
           sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_bandwidth=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n",
                   rateQ, in_ip[n],auth);
           sendCoderCommand(buf, in_ip[n]);
           sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_quality=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n",
                   panasonicGetQuality(rateQ), in_ip[n],auth);
           sendCoderCommand(buf, in_ip[n]);
        }
      }
    }
    usleep(10000);
  }
}
\ No newline at end of file
diff --git a/Laptop/sshPi b/Laptop/sshPi
new file mode 100755
index 0000000000000000000000000000000000000000..39faecd7bfb1b12fcf6cd5eb12f496a40d94df74
--- /dev/null
+++ b/Laptop/sshPi
@@ -0,0 +1 @@
+ssh pi@10.9.0.3
diff --git a/Laptop/startVPNClient.sh b/Laptop/startVPNClient.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a42db227c56108a63f435fc9dfb619f56c60a1ef
--- /dev/null
+++ b/Laptop/startVPNClient.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sudo systemctl start openvpn@client
diff --git a/Laptop/statusVPNClient.sh b/Laptop/statusVPNClient.sh
new file mode 100755
index 0000000000000000000000000000000000000000..146eb36ae278c82eb5d8b459294bfceb354b2785
--- /dev/null
+++ b/Laptop/statusVPNClient.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sudo systemctl status openvpn@client
diff --git a/Laptop/stopVPNClient.sh b/Laptop/stopVPNClient.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9e738882fd42a72c48160a3e63efdeabcb449991
--- /dev/null
+++ b/Laptop/stopVPNClient.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sudo systemctl stop openvpn@client