/* Cypress Astoria Sdk Version file (cyastsdkversion.h)
## ===========================
## Copyright (C) 2010  Cypress Semiconductor
##
## This program 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 2
## of the License, or (at your option) any later version.
##
## This program 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 this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor
## Boston, MA  02110-1301, USA.
## ===========================
*/

#ifndef _INCLUDED_CYASTSDK_VERSION_H_
#define _INCLUDED_CYASTSDK_VERSION_H_

/* Astoria SDK version 1.2.1 */
#define CYAS_MAJOR_VERSION (1)
#define CYAS_MINOR_VERSION (2)
#define CYAS_BUILD_NUMBER (197)

#endif /*_INCLUDED_CYASTSDK_VERSION_H_*/
