Faits: Faits: A. A._, ressortissant suisse né le 14 juin 1963, a été arrêté et placé en détention préventive le 28 mars 2003 dans le cadre d'une procédure pénale ouverte contre lui des chefs notamment de faux dans les titres, d'escroquerie, d'abus de confiance, de gestion déloyale et de banqueroute frauduleuse. Il est soupçonné d'avoir remis en sous-location des locaux auxquels il n'avait plus aucun droit et d'avoir détourné les loyers encaissés, par le biais de diverses sociétés américaines; pour induire les sous-locataires en erreur, il aurait présenté un bail principal falsifié et se serait prétendu l'avocat des propriétaires. Il lui est aussi reproché d'avoir détourné à son profit un prêt bancaire de deux millions de francs consenti à l'une des sociétés qu'il gérait. A._ a sollicité à plusieurs reprises sans succès sa libération provisoire auprès de la Chambre d'accusation du canton de Genève (ci-après: la Chambre d'accusation ou la cour cantonale), puis du Tribunal fédéral. Dans un arrêt rendu le 12 février 2004, celui-ci a confirmé l'existence de charges suffisantes à l'encontre du prévenu en relation avec les infractions dénoncées et le maintien de la détention préventive en raison des risques de fuite et de collusion (1P.32/2004). Le 12 novembre 2004, le Juge d'instruction en charge de la procédure a sollicité une prolongation de la détention préventive de A._ d'une durée de trois mois afin de procéder à deux audiences de témoins prévues les 30 novembre et 13 décembre 2004; il invoquait en outre les risques de collusion, de fuite et de réitération. Le 15 novembre 2004, le prévenu a requis sa mise en liberté provisoire. Par ordonnance du 16 novembre 2004, la Chambre d'accusation a autorisé la prolongation de la détention préventive de A._ pour une durée de deux mois en raison des risques de collusion et de fuite. Vu sa précédente décision du 17 septembre 2004, dans laquelle elle laissait entendre qu'en l'absence de faits nouveaux importants, l'instruction devrait pouvoir se terminer dans le courant du mois de novembre 2004, elle a estimé que le principe du respect de la proportionnalité commençait à se poser et qu'une libération provisoire assortie de mesures propres à écarter le risque de fuite pouvait entrer en considération. Elle a ainsi ordonné la mise en liberté provisoire de A._, moyennant le versement d'une caution de 100'000 fr. en espèces, à charge pour lui de se présenter à tous les actes de la procédure aussitôt qu'il en sera requis. Le Tribunal fédéral a partiellement admis, dans la mesure où il était recevable, le recours formé contre cette décision qu'il a annulée au terme d'un arrêt rendu le 7 décembre 2004 (1P.682/2004). Il a estimé en substance que la motivation retenue ne permettait pas de savoir si la détention préventive était disproportionnée par rapport à la peine prévisible ou par rapport à la conduite de la procédure, auquel cas une libération sous caution était envisageable, pour autant que le montant de celle-ci ne soit pas prohibitif. Statuant à nouveau le 10 décembre 2004, la Chambre d'accusation a prolongé la détention de A._ jusqu'au 16 janvier 2005 en raison d'un risque de fuite très concret résultant des liens du prévenu avec l'Allemagne où résident sa femme et sa fille, dans une maison lui appartenant, et de son absence de véritables attaches en Suisse. Elle a prononcé la mise en liberté provisoire de A._ moyennant le versement en espèces d'une caution de 100'000 fr., à charge pour lui de se présenter à tous les actes de la procédure aussitôt qu'il en sera requis. Statuant à nouveau le 10 décembre 2004, la Chambre d'accusation a prolongé la détention de A._ jusqu'au 16 janvier 2005 en raison d'un risque de fuite très concret résultant des liens du prévenu avec l'Allemagne où résident sa femme et sa fille, dans une maison lui appartenant, et de son absence de véritables attaches en Suisse. Elle a prononcé la mise en liberté provisoire de A._ moyennant le versement en espèces d'une caution de 100'000 fr., à charge pour lui de se présenter à tous les actes de la procédure aussitôt qu'il en sera requis. B. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler cette décision et de prononcer sa liberté provisoire sans conditions. Il invoque une violation des art. 8, 9, 10, 29 al. 2, 31 et 32 al. 1 Cst. et des art. 5 § 1 et 3 et 6 § 2 CEDH. Il requiert l'assistance judiciaire gratuite. La Chambre d'accusation se réfère aux considérants de sa décision. Le Procureur général du canton de Genève conclut au rejet du recours. Le Juge d'instruction s'est brièvement déterminé. A._ a répliqué. A._ a répliqué. C. Par ordonnance du 14 janvier 2005, la Chambre d'accusation a autorisé la prolongation de la détention préventive de A._ pour une durée de deux mois. 