Commit fae6282a authored by gauthier's avatar gauthier

svn merge did not delete this dir

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7654 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 2c2a2c6a
This diff is collapsed.
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
# To be run as: make or make PROCESS=UE or make PROCESS=MME
# make and make PROCESS=UE build ./bin/UEprocess
# make PROCESS=MME builds ./bin/MMEprocess
include Makerules
include Makefile.inc
export PROJDIR = $(CURDIR)
all:
ifeq ($(PROCESS), UE)
@$(CD) $(SECUDIR) && $(MAKE) -f Makefile.NAS
endif
@$(CD) $(UTILDIR) && $(MAKE)
@$(CD) $(APIDIR) && $(MAKE)
@$(CD) $(IESDIR) && $(MAKE)
@$(CD) $(EMMDIR) && $(MAKE)
@$(CD) $(ESMDIR) && $(MAKE)
@$(CD) $(SRCDIR) && $(MAKE)
ifeq ($(PROCESS), UE)
@$(CD) $(TOOLSDIR) && $(MAKE)
@$(CD) $(USRTSTDIR) && $(MAKE)
endif
ifeq ($(PROCESS), MME)
@$(CD) $(NETTSTDIR) && $(MAKE)
@$(CD) $(ASSIMUDIR) && $(MAKE)
endif
# SR include all objects in a single archive
$(AR) rcs libUE/libNasUE.a `find . -name *.o` `find $(OPENAIRCN_DIR)/SECU -name *.o`
clean:
@$(CD) $(SRCDIR) && $(MAKE) $@
@$(CD) $(APIDIR) && $(MAKE) $@
@$(CD) $(EMMDIR) && $(MAKE) $@
@$(CD) $(ESMDIR) && $(MAKE) $@
veryclean: clean
@$(CD) $(SRCDIR) && $(MAKE) $@
@$(CD) $(APIDIR) && $(MAKE) $@
@$(CD) $(EMMDIR) && $(MAKE) $@
@$(CD) $(ESMDIR) && $(MAKE) $@
@$(CD) $(UTILDIR) && $(MAKE) $@
@$(CD) $(IESDIR) && $(MAKE) $@
@$(CD) $(TOOLSDIR) && $(MAKE) $@
@$(CD) $(USRTSTDIR) && $(MAKE) $@
@$(CD) $(NETTSTDIR) && $(MAKE) $@
@$(CD) $(ASSIMUDIR) && $(MAKE) $@
@$(RM) libUE/libNasUE.a
veryveryclean: veryclean
@$(CD) $(BINDIR) && $(RM) * .*.nvram
@$(CD) $(LIBDIR) && $(RM) *
@$(CD) $(LIBDIR)UE && $(RM) *
@$(CD) $(LIBDIR)MME && $(RM) *
depend:
@$(CD) $(SRCDIR) && $(MAKE) depend
@$(CD) $(APIDIR) && $(MAKE) depend
@$(CD) $(EMMDIR) && $(MAKE) depend
@$(CD) $(ESMDIR) && $(MAKE) depend
@$(CD) $(UTILDIR) && $(MAKE) depend
@$(CD) $(IESDIR) && $(MAKE) depend
@$(CD) $(TOOLSDIR) && $(MAKE) depend
@$(CD) $(USRTSTDIR) && $(MAKE) depend
@$(CD) $(NETTSTDIR) && $(MAKE) depend
@$(CD) $(ASSIMUDIR) && $(MAKE) depend
# DO NOT DELETE
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
# list of generated libraries
LIBUTIL = libutil
LIBAPI = libapi
LIBIES = libies
LIBEMMMSG = libEMMmsg
LIBEMMSAP = libEMMsap
LIBESMMSG = libESMmsg
LIBESMSAP = libESMsap
# Binary directories
BINDIR = $(PROJDIR)/bin
LIBDIR = $(PROJDIR)/lib
LIBPROCESS = $(LIBDIR)$(PROCESS)
# Source directories
SECUDIR = $(OPENAIRCN_DIR)/SECU
SRCDIR = $(PROJDIR)/src
INCDIR = $(SRCDIR)/include
UTILDIR = $(SRCDIR)/util
APIDIR = $(SRCDIR)/api
USERAPIDIR = $(APIDIR)/user
NETAPIDIR = $(APIDIR)/network
USIMAPIDIR = $(APIDIR)/usim
MMEAPIDIR = $(APIDIR)/mme
IESDIR = $(SRCDIR)/ies
EMMDIR = $(SRCDIR)/emm
ESMDIR = $(SRCDIR)/esm
EMMMSGDIR = $(EMMDIR)/msg
EMMSAPDIR = $(EMMDIR)/sap
ESMMSGDIR = $(ESMDIR)/msg
ESMSAPDIR = $(ESMDIR)/sap
# Tools directory
TOOLSDIR = $(PROJDIR)/tools
# Test directories
TSTDIR = $(PROJDIR)/tst
USRTSTDIR = $(TSTDIR)/user
NETTSTDIR = $(TSTDIR)/network
ASSIMUDIR = $(TSTDIR)/as_simulator
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
CC = gcc
RM = rm -f
CP = cp -p
LD = /usr/bin/ld
AR = /usr/bin/ar
CD = cd
MAKE = make
# machine hardware name
HARDWARE_NAME = $(shell uname -m)
ifeq ($(HARDWARE_NAME), x86_64)
CFLAGS = $(INCLUDES) $(DEFINES) -fPIC -g -pthread
else
CFLAGS = $(INCLUDES) $(DEFINES) -g -pthread
endif
DEFINES = -DLINUX -D_REENTRANT -Wall -O -std=gnu99
SVN_REV = $(shell svnversion -n .)
DATE_REV = $(shell date '+%F %T')
# Default builds UEprocess
ifeq ($(PROCESS), MME)
DEFINES += -DNAS_MME
else
PROCESS = UE
DEFINES += -DNAS_UE
endif
LDFLAGS = -pthread -L$(LIBDIR) -L$(LIBPROCESS) -lrt
SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
ifndef PROJDIR
PROJDIR = $(PWD)/..
endif
include $(PROJDIR)/Makerules
include $(PROJDIR)/Makefile.inc
export LD_RUN_PATH = $(LIBDIR):$(LIBPROCESS)
TARGET = $(PROCESS)process
# Define the version number
DEFINES += -D'FIRMWARE_VERSION="$(SVN_REV) - $(DATE_REV)"'
ifeq ($(TARGET), MMEprocess)
SRCS = MMEprocess.c nas_network.c nas_parser.c nas_proc.c
endif
ifeq ($(TARGET), UEprocess)
SRCS = UEprocess.c nas_network.c nas_parser.c nas_proc.c nas_user.c
endif
LIBS = -lutil -lapi -lEMMmsg -lESMmsg -lEMMsap -lESMsap -lies -lrt -lnettle -lcrypto -lm
INCLUDES = -I. -I$(INCDIR) -I$(UTILDIR) -I$(USERAPIDIR) -I$(NETAPIDIR) \
-I$(EMMDIR) -I$(EMMMSGDIR) -I$(EMMSAPDIR) \
-I$(ESMDIR) -I$(ESMMSGDIR) -I$(ESMSAPDIR) \
-I$(IESDIR) -I$(MMEAPIDIR)
.PHONY: $(TARGET)
%.o: %.c Makefile $(PROJDIR)/Makerules $(PROJDIR)/Makefile.inc
@echo Compiling $<
@$(CC) $(CFLAGS) -c $< -o $@
$(TARGET): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $^ $(EMMDIR)/*.o $(ESMDIR)/*.o $(SECUDIR)/*.o $(LIBS)
@echo Replacing $@ to $(BINDIR)
@$(RM) $(BINDIR)/$@
@$(CP) $@ $(BINDIR)
# Always build the main object file which contains the version number
$(TARGET).o: .FORCE
.FORCE:
clean:
$(RM) $(OBJS) *.bak *~
veryclean: clean
$(RM) UE$(TARGET) MME$(TARGET)
depend:
makedepend -- ${CFLAGS} -- ${SRCS}
# DO NOT DELETE THIS LINE -- make depend depends on it.
This diff is collapsed.
This diff is collapsed.
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
ifndef PROJDIR
export PROJDIR = $(PWD)/../..
endif
include $(PROJDIR)/Makerules
include $(PROJDIR)/Makefile.inc
export INCLUDES = -I. -I$(INCDIR) -I$(UTILDIR) -I$(IESDIR) \
-I$(EMMDIR) \
-I$(ESMDIR) \
-I$(EMMMSGDIR) \
-I$(ESMMSGDIR) \
-I$(SRCDIR) \
-I$(OPENAIRCN_DIR)/COMMON \
-I$(OPENAIRCN_DIR)/SECU
TARGET = $(LIBAPI)
TARGETS = $(TARGET).a $(TARGET).so
OBJS = $(USERAPIDIR)/*.o $(NETAPIDIR)/*.o $(USIMAPIDIR)/*.o $(MMEAPIDIR)/*.o
all:
@$(CD) $(NETAPIDIR) && $(MAKE)
@$(CD) $(USERAPIDIR) && $(MAKE)
@$(CD) $(USIMAPIDIR) && $(MAKE)
@$(CD) $(MMEAPIDIR) && $(MAKE)
@$(MAKE) $(TARGETS)
$(TARGET).a: $(OBJS)
@echo target.a
@$(RM) $@
@$(AR) $(ARFLAGS) $@ $^
@echo Replacing $@ to $(LIBPROCESS)
@$(RM) $(LIBPROCESS)/$@
@$(CP) $@ $(LIBPROCESS)
$(TARGET).so: $(OBJS)
@$(LD) -G -o $@ $^
@echo Replacing $@ to $(LIBPROCESS)
@$(RM) $(LIBPROCESS)/$@
@$(CP) $@ $(LIBPROCESS)
clean:
$(RM) *.bak *~
@$(CD) $(USERAPIDIR) && $(MAKE) $@
@$(CD) $(NETAPIDIR) && $(MAKE) $@
@$(CD) $(USIMAPIDIR) && $(MAKE) $@
@$(CD) $(MMEAPIDIR) && $(MAKE) $@
veryclean: clean
$(RM) $(TARGETS)
depend:
makedepend -- ${CFLAGS} -- ${SRCS}
# DO NOT DELETE THIS LINE -- make depend depends on it.
This diff is collapsed.
################################################################################
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
#
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
#
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
#
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
#
# Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
#
################################################################################
ifndef PROJDIR
PROJDIR = $(PWD)/../../..
INCLUDES = -I. -I$(INCDIR) -I$(UTILDIR)
endif
include $(PROJDIR)/Makerules
include $(PROJDIR)/Makefile.inc
all: $(OBJS)
%.o: %.c Makefile
@echo Compiling $<
@$(CC) $(CFLAGS) -c $< -o $@
clean:
$(RM) $(OBJS) *.bak *~
depend:
makedepend -- ${CFLAGS} -- ${SRCS}
# DO NOT DELETE THIS LINE -- make depend depends on it.
This diff is collapsed.
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2014 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.
*******************************************************************************/
/*****************************************************************************
Source mme_api.h
Version 0.1
Date 2013/02/28
Product NAS stack
Subsystem Application Programming Interface
Author Frederic Maurel
Description Implements the API used by the NAS layer running in the MME
to interact with a Mobility Management Entity
*****************************************************************************/
#ifndef __MME_API_H__
#define __MME_API_H__
#ifdef NAS_MME
# if defined(NAS_BUILT_IN_EPC)
# include "mme_config.h"
# endif
#include "commonDef.h"
#include "securityDef.h"
#include "OctetString.h"
#endif
/****************************************************************************/
/********************* G L O B A L C O N S T A N T S *******************/
/****************************************************************************/
/* Maximum number of UEs the MME may simultaneously support */
#define MME_API_NB_UE_MAX 1
#ifdef NAS_MME
/* Features supported by the MME */
typedef enum mme_api_feature_s {
MME_API_NO_FEATURE_SUPPORTED = 0,
MME_API_EMERGENCY_ATTACH = (1<<0),
MME_API_UNAUTHENTICATED_IMSI = (1<<1),
MME_API_IPV4 = (1<<2),
MME_API_IPV6 = (1<<3),
MME_API_SINGLE_ADDR_BEARERS = (1<<4),
} mme_api_feature_t;
/* Network IP version capability */
typedef enum mme_api_ip_version_e {
MME_API_IPV4_ADDR,
MME_API_IPV6_ADDR,
MME_API_IPV4V6_ADDR,
MME_API_ADDR_MAX
} mme_api_ip_version_t;
/*
* EPS Mobility Management configuration data
* ------------------------------------------
*/
typedef struct mme_api_emm_config_s {
mme_api_feature_t features; /* Supported features */
gummei_t gummei; /* EPS Globally Unique MME Identity */
uint8_t prefered_integrity_algorithm[8];// choice in NAS_SECURITY_ALGORITHMS_EIA0, etc
uint8_t prefered_ciphering_algorithm[8];// choice in NAS_SECURITY_ALGORITHMS_EEA0, etc
} mme_api_emm_config_t;
/*
* EPS Session Management configuration data
* -----------------------------------------
*/
typedef struct mme_api_esm_config_s {
mme_api_feature_t features; /* Supported features */
uint8_t dns_prim_ipv4[4]; /* Network byte order */
uint8_t dns_sec_ipv4[4]; /* Network byte order */
} mme_api_esm_config_t;
/****************************************************************************/
/************************ G L O B A L T Y P E S ************************/
/****************************************************************************/
/* EPS subscribed QoS profile */
typedef struct mme_api_qos_s {
#define MME_API_UPLINK 0
#define MME_API_DOWNLINK 1
#define MME_API_DIRECTION 2
int gbr[MME_API_DIRECTION]; /* Guaranteed Bit Rate */
int mbr[MME_API_DIRECTION]; /* Maximum Bit Rate */
int qci; /* QoS Class Identifier */
} mme_api_qos_t;
/* Traffic Flow Template */
typedef struct mme_api_tft_s {
} mme_api_tft_t;
/****************************************************************************/
/******************** G L O B A L V A R I A B L E S ********************/
/****************************************************************************/
/****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
#if defined(NAS_BUILT_IN_EPC)
int mme_api_get_emm_config(mme_api_emm_config_t *config,
mme_config_t *mme_config_p);
#else
int mme_api_get_emm_config(mme_api_emm_config_t *config);
#endif
int mme_api_get_esm_config(mme_api_esm_config_t *config);
int mme_api_identify_guti(const GUTI_t *guti, auth_vector_t *vector);
int mme_api_identify_imsi(const imsi_t *imsi, auth_vector_t *vector);
int mme_api_identify_imei(const imei_t *imei, auth_vector_t *vector);
int mme_api_new_guti(const imsi_t *imsi, GUTI_t *guti, tac_t *tac, int *n_tacs);
int mme_api_subscribe(OctetString *apn, mme_api_ip_version_t mme_pdn_index, OctetString *pdn_addr,
int is_emergency, mme_api_qos_t *qos);
int mme_api_unsubscribe(OctetString *apn);
#endif // NAS_MME
#endif /* __MME_API_H__*/
This diff is collapsed.
This diff is collapsed.
../../../../../../openair2/COMMON/as_message.h
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
AT+COPS=3,0;+COPS?;+COPS=3,1;+COPS?;+COPS=3,2;+COPS?
quit
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment